ios - 如何返回 SignIn ViewController

标签 ios objective-c uiviewcontroller

当用户启动应用程序时,我会检查身份验证状态,并显示不同的 ViewControler

Logged in -> Main ViewController -> Will pushViewController or presentViewController according to user action

Need Log in -> SignIn ViewController -> Main ViewController -> Will pushViewController or presentViewController according to user action

我的问题是当用户想要注销时如何返回到 SignIn ViewController。

方法一:

Current ViewController -> presentViewController/pushViewController SignIn ViewController

问题:以前的 ViewController 仍在内存中

方法二:

Current ViewController -> popToRootViewControllerAnimated -> presentViewController/pushViewController SignIn ViewController

问题:如果用户之前登录过,RootViewController将成为Main ViewController,我们无法通过该方法释放Main ViewController。

方法三:

[[[[UIApplication sharedApplication] delegate] window] setRootViewController:signinNavigationController];

问题:没有动画,看起来以前的 ViewController 仍在内存中。

最佳答案

您可以在 Storyboard中使用 Unwind segue。有关详细信息,请参阅此链接:http://spin.atomicobject.com/2014/10/25/ios-unwind-segues/

以编程方式, 当您按下注销按钮时调用 appDelegate 函数:

func showLoginController() {
    //For Story board use this line
    var loginController:LoginViewController = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("loginViewControllerIdentifier") as! LoginViewController
    //for xib file use this line
    var loginController:LoginViewController = UINib(nibName: "loginViewController", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? LoginViewController

    AppDelegate.sharedAppDelegate().window?.rootViewController = loginController
}

关于ios - 如何返回 SignIn ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31915827/

相关文章:

ios - 无法通过 TestFlight : Registered maximum number of devices 安装应用

ios - 将 UIView 从 ViewController 移动到 Window

ios - 如何判断 ViewController View 是否可见

objective-c - Xcode 的隐藏功能

cocoa - 同步服务客户端和架构 Xcode 项目结构

Swift - 添加一个不与当前 Storyboard View 重叠的 UIView

objective-c - 深黑色和不透明 UIToolbar

ios - Cloudbees Jenkins shell 访问被拒绝 Facebook-iOS-SDK

ios - 如何将视频上传到 Amazon s3 作为分段视频上传 iOS v2.1

ios - "Format string is not string literal (potentially insecure)"