ios - 从导航栏中删除操作

标签 ios swift uinavigationcontroller

我有 3 个 View 和 3 个 Controller :HomeView -> LoginView -> AccountViewHomeView 中,我添加了一个 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 - 从导航栏中删除操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223183/

相关文章:

ios - 当应用程序进入后台时,DispatchQueue.asyncAfter 的行为如何?

ios - 我怎样才能得到字典关键元素的区别?

ios - 返回具有之前存在的相同方向的 View

iOS + Swift,如何访问所有音乐文件

c# - Assembly.GetManifestResourceStream 不适用于 iOS 上的 Xamarin

ios - 动态更改数据源导致 deleteRowsAtIndexPaths :indexes to crash

swift - SCNText 不会显示

ios:关闭并推送 View Controller 一次执行

iphone - 如何将第一个简单的 singleview viewController 更改为导航 viewController?

ios - 如何更改 launchscreen.storyboard 中的颜色或导航栏?