我具有3个控制器的3个视图:HomeView -> LoginView -> AccountView
HomeView中,我添加了NavigationBarController。用户登录LoginView时,将其移至AccountView。当他单击NavigationBar中的后退按钮时,他被发送到LoginView,这就是问题所在。记录用户是否单击后退按钮后,我想向他显示HomeView而不是LoginView。我尝试了这段代码,但是要花一些时间才能执行,我可以看到LoginView几毫秒。

override func viewWillAppear(animated: Bool) {
    if let token = userDefaults.valueForKey("token") { //User logged in
        self.performSegueWithIdentifier("homeSegue", sender: self)
    }
}


还有另一种方法吗?

最佳答案

在AccountView的viewDidApper中,您可以通过这种方式从ViewControllers堆栈中删除LoginView

self.navigationController?.viewControllers.removeAtIndex(1)


这样,如果用户返回,他/她将按要求看到主页

关于ios - 从导航栏中删除 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38223183/

10-09 18:31