ios - 将控制权返回给我的根 Controller

标签 ios swift3

我的第一个完整的 swift 3 应用程序。

我有一个名为 RootViewController 的 ViewController。我有一个 MainViewController 和一个 LoginViewController。

当我启动 RootViewController 时,我会在 viewDidLoad() 中检查登录凭据。如果没有,我执行以下代码来显示我的登录页面:

    if loginViewController == nil {
        loginViewController = storyboard?.instantiateViewController(withIdentifier: RootViewController.LOGIN) as! LoginViewController!
    }

    if currentViewController != nil {
        currentViewController!.willMove(toParentViewController: nil)
        currentViewController.view.removeFromSuperview()
        currentViewController!.removeFromParentViewController()
    }

    if loginViewController != nil {
        loginViewController?.view.frame = view.frame
        self.addChildViewController(loginViewController!)
        self.view.insertSubview(loginViewController!.view, at: 0)
        loginViewController!.didMove(toParentViewController: self)
    }

    currentViewController = loginViewController

现在我的问题是这个。在我的 LoginViewController 中,用户已成功登录。如何将控制切换回我的 Root View Controller ,以便它切换到我的 MainViewController?

我的书没有这样的例子,我不知道如何搜索不返回一千个转向架!

最佳答案

我在 AppDelegate 中使用以下内容:

func changeRootViewControllerToMyVC() {
        let storyboard = self.window?.rootViewController?.storyboard
        let desiredViewController = storyboard?.instantiateViewController(withIdentifier: "myViewController") as? myViewController;

        if let win = self.window{
            UIView.transition(with: win, duration: 0.3, options: UIViewAnimationOptions.transitionFlipFromLeft, animations: {
                win.rootViewController = desiredViewController
            }, completion: nil)
        }

    }

我这样调用它:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.changeRootViewControllerToMyVC()

关于ios - 将控制权返回给我的根 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985796/

相关文章:

ios - 获取 iOS 应用程序使用的实际 OpenGL 纹理内存量

ios - 自动布局横向和纵向模式的不同约束

iOS:如何检测电子邮件是否已成功发送?

swift 3 : How to convert from [String: AnyObject] to [String: String]?

database - Swift 3 sqlite/使用数据库?

ios - 如何本地化 UIBarButtonItem ?代码

ios - UIScrollView 不滚动 Swift 3

swift - 为什么 'nil' 与 Swift 3 中的 'UnsafePointer<CGAffineTransform>' 不兼容?

swift3 - 使用 BETWEEN 在 Realm 中查找对象

iOS 13 - 没有文本 Swift 的自定义后退按钮