UINavigation 控制器上的完成按钮没有导航回来

Posted

技术标签:

【中文标题】UINavigation 控制器上的完成按钮没有导航回来【英文标题】:Done button on UINavigation controller is not navigating back 【发布时间】:2012-02-11 20:37:17 【问题描述】:

当我点击完成按钮时,它应该导航回主视图控制器的地方没有发生任何事情

UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                          target:self
                                                                         action:@selector(dismissView:)] autorelease];

[[self navigationItem] setRightBarButtonItem:button];


-(void)dismissView: (id)sender



[self.navigationController popToRootViewControllerAnimated:YES];


它应该导航回主视图控制器。但它什么也没做。任何想法有什么问题。

感谢您的帮助。

【问题讨论】:

请添加更多信息以获取更多上下文。你是如何进入你想要弹出的控制器的?你是推它还是它是一个模态视图控制器?您是否将“完成”按钮连接到 IB 中的该方法? 【参考方案1】:

当前的 ViewController 是否被推送到导航堆栈上?

self.navigationController 仅在视图控制器在其堆栈中时才返回导航控制器。如果找不到导航控制器,则此属性为零。

调试并检查它不是零。设置一些断点,看看故障点在哪里。是dismissView:甚至被调用?你代码的哪一部分是[[self navigationItem] setRightBarButtonItem:button];

【讨论】:

以上是关于UINavigation 控制器上的完成按钮没有导航回来的主要内容,如果未能解决你的问题,请参考以下文章

UINavigation 控制器 UIViewController 和 UItoolbar 作为子视图问题

UINavigation 后退栏按钮

从 UIView 加载 UINavigation 控制器

基于页面的 App,UINavigation 控制器,类似于 iOS 日历

xcode 从登录重定向到带有 uinavigation 的视图控制器

来自 ViewController 的 UINavigation 控制器