当我使用这个函数时,我被发送回我的RootViewController,但是我的导航栏消失了。当我第一次运行应用程序时,我的导航栏可以正常工作,但当我登录并注销时,导航栏会消失。我正在使用顶部栏“推断”和使用推送序列。
我试着通过添加
navigationController?.navigationBar.hidden = false到viewWillAppear和viewDidAppear函数。我也将此添加到RootViewController中,但它不起作用。是我的注销功能以某种方式删除了导航栏,还是我忘记了什么?
最好使用Swift语言。
发布于 2015-11-03 19:30:15
您永远不应该使用
navigationController?.navigationBar.hidden = false相反,您应该使用
navigationController?.setNavigationBarHidden(false, animated: true)发布于 2015-11-04 15:26:10
这个问题可能不是最好的,但我只是简单地让注销功能和注销按钮连接到导航控制器视图,而不是“嵌入”导航控制器的“主页”,就解决了这个问题。当我将注销按钮与“主页”连接时,它没有加载导航控制器设置等,它只加载了一次,因为它是初始视图控制器。我希望没有人会像我一样犯同样的错误。:)
发布于 2015-11-04 02:03:42
也许您的根视图控制器被设置为在导航控制器条目之前显示的控制器?如果是这样的话,在进入导航控制器时,您应该将导航控制器设置为根视图控制器。否则,如果您希望将视图添加到您使用的导航堆栈中,我建议您在转换视图时
self.navigationController?.pushViewController(viewController, animated: true)然后弹回一个控制器,您可以使用
self.navigationController?.popToViewController(viewController, animated: true)或者,如果根视图控制器在导航堆栈中,并且您希望返回到该堆栈,则使用
self.navigationController?.popToRootViewController(animated: true)当然,动画布尔值是您自己的选择,“viewController”是您想要推入导航堆栈或弹回的视图控制器。我发现使用推送和弹出来实现导航堆栈比使用推送segues要好得多。
https://stackoverflow.com/questions/33497741
复制相似问题