导航栏返回按钮不起作用
Posted
技术标签:
【中文标题】导航栏返回按钮不起作用【英文标题】:NavigationBar BACK button not working 【发布时间】:2017-08-24 21:56:52 【问题描述】:我有一个 NavigationViewController,它的根是一个常规的 UIViewController。 我通过以下方式以编程方式呈现 TableViewController:
self.performSegue(withIdentifier: "showTableViewVC", sender: nil)
这个 TableViewVC 正在显示 BACK 按钮,但它根本不起作用。
此 TableViewVC 的转场是“显示/推送”转场。
如何导航回 UIViewController?
【问题讨论】:
您需要在之前的 VC 中添加另一个 segue 才能弹回,并添加执行该 segue 的操作 如果我错了请纠正我,您没有使用UINavigationController
进行导航,您只使用segues 不是吗?
我有一个嵌入根的 NavigationController。我使用 segue 来显示 DetailTableViewVC。
那么你需要一个 segue 回到你以前的 viewController
好的,但我无法“绘制”(单击选项)从后退按钮到 rootVC 的 segue。 (NavBar 是 XCode 自动添加的)
【参考方案1】:
1.在 showTableViewVC 的导航控制器中添加 UIBarbutton。
override func viewDidLoad()
super.viewDidLoad()
let backBarButton = UIBarButtonItem.init(barButtonSystemItem: .add, target: self, action: #selector(backButtonTapped(sender:))) as UIBarButtonItem
self.navigationItem.setLeftBarButton(backBarButton, animated: true)
2。实现后退按钮操作。
func backButtonTapped(sender: UIBarButtonItem)
self.navigationController?.popViewController(animated: true)
【讨论】:
self.navigationController puts[<MyApp.ViewController: 0x101c0c0b0>, <MyApp.TableViewController: 0x101c56cc0>].
所以它似乎正确堆叠了 backButtonTapped 被触发但 popViewController(animated: true)
或 popToRoot
没有弹出。以上是关于导航栏返回按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的导航栏按钮不起作用(我只是一个初学者,对不起......)
为啥当 textview 被 resignedFirstResponder() 时导航栏按钮项不起作用?