pushViewController 后后退按钮不起作用

Posted

技术标签:

【中文标题】pushViewController 后后退按钮不起作用【英文标题】:Back button doesn't work after pushViewController 【发布时间】:2016-02-03 11:41:21 【问题描述】:

这就是我推送UIViewController 的方式:

[tabController setSelectedIndex:0];
UINavigationController *navController = [tabController selectedViewController];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
NotificationViewController *notificationController = (NotificationViewController*)[mainStoryboard
 instantiateViewControllerWithIdentifier: @"NotificationViewController"];
[navController pushViewController:notificationController animated:YES];
navController.navigationBarHidden = NO;  

NotificationViewController 可见并且我点击返回按钮时,没有任何反应。之前的UIViewControllerUINavigationBar 中有一个手势,但我在UIViewControllerviewWillDisappear 中删除了它。但是 NotificationViewController 的后退按钮仍然不起作用。

【问题讨论】:

当你使用 tabcontroller 时,你认为它应该放在哪里? 【参考方案1】:

您可能会在视图可见之前调用pushViewController

确保您不要在viewDidLoad 中调用您的pushViewController

您的pushViewController 仅应在调用viewDidAppear 后使用,如果您希望您的导航控制器与后退按钮一起正常工作。否则,导航控制器会将标题添加到没有重定向链接的前一个视图控制器。

【讨论】:

以上是关于pushViewController 后后退按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器中的后退按钮有啥 pushViewController 没有的功能?

调用 pushViewController 时,后退按钮会覆盖上一个 UIBarButton

如何覆盖 pushViewController 创建的导航栏的功能

在导航控制器中设置后退按钮

后退按钮不会在导航栏中更改颜色

UINavigationController 没有在后退按钮上弹出视图