【发布时间】:2016-06-16 10:32:55
【问题描述】:
您好,我有 ControllerA,其中隐藏了 NavigationBar。在 ControllerB 上,我正在显示 NavigationBar。在 ControllerB 上,我使用TableView 实现了一个搜索栏。因此,当用户选择任何行时,我将关闭控制器。问题是它在控制器A上显示导航栏。
这就是我第一次在 ControllerA 中隐藏 NavigationBar 的方式
控制器A
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
ControllerB我在这里展示它
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.navigationController!.popViewControllerAnimated(true)
}
我尝试将隐藏导航代码放入 ControllerB 中的 viewWillDisappear 函数中,但它不起作用。它在显示栏后会延迟一段时间隐藏栏。
我也试过把ControllerA的viewDidLoad函数放进去,但还是显示栏
请告诉我如何在 ControllerB 被解除后隐藏 ControllerA 上的导航栏
【问题讨论】:
-
在控制器 B 的 viewDidDisappear 中设置隐藏导航栏?
-
它没有用。仍在显示
-
在控制器 A 的 viewDidAppear 中隐藏导航栏。
-
PGDev 的答案就是您要找的。span>
-
@PGDev 很好,它会删除但经过一些延迟。它显示 1 2 秒
标签: ios swift uinavigationcontroller uinavigationbar dismiss