我有兴趣实现一个后退按钮以切换到以前的视图控制器 . 我试图将一个导航栏嵌入到表视图控制器的顶部,但问题是当我做回到第一个视图控制器时,默认情况下,Xcode保持导航栏的后退按钮返回到表查看控制器 . 是否有更简单的方法来实现segue返回第一个VC而不保留导航栏?
我不太确定这是否有效,但是将您的视图控制器(包括第一个控制器)嵌入到导航控制器中 . 这将使您的所有视图控制器都带有导航栏 .
在主视图控制器(您不想拥有导航栏的控制器)上,在 viewDidLoad 方法中添加代码行 .
viewDidLoad
斯威夫特3:
self.navigationController?.navigationBar.isHidden = true
只需将“Back”UIBarButtonItem指定给此方法即可 .
@IBAction func backButtonPressed(sender: AnyObject) { self.dismissViewControllerAnimated(true, completion: nil) }
听起来像是一些问题
1)您是如何从第一个视图控制器导航的?如果不是 Show (Push) ,则替换堆栈中的第一个视图控制器 .
Show (Push)
2)根据您的问题,确保您的第一个视图控制器未嵌入导航控制器中
3)正如Dylan所提到的,你需要挂钩你的后退按钮来移除当前的视图控制器以返回到第一个
4)(3)的扩展,你如何回到第一个视图控制器?如果您使用后退按钮处理程序明确导航到第一个视图控制器,它实际上不会返回,而是前进并保留导航栏 .
3 回答
我不太确定这是否有效,但是将您的视图控制器(包括第一个控制器)嵌入到导航控制器中 . 这将使您的所有视图控制器都带有导航栏 .
在主视图控制器(您不想拥有导航栏的控制器)上,在
viewDidLoad
方法中添加代码行 .斯威夫特3:
只需将“Back”UIBarButtonItem指定给此方法即可 .
听起来像是一些问题
1)您是如何从第一个视图控制器导航的?如果不是
Show (Push)
,则替换堆栈中的第一个视图控制器 .2)根据您的问题,确保您的第一个视图控制器未嵌入导航控制器中
3)正如Dylan所提到的,你需要挂钩你的后退按钮来移除当前的视图控制器以返回到第一个
4)(3)的扩展,你如何回到第一个视图控制器?如果您使用后退按钮处理程序明确导航到第一个视图控制器,它实际上不会返回,而是前进并保留导航栏 .