如果用户已经注册(从本地数据库检查),当我运行我的应用程序时,我想加载一个不同的 ViewController。它正在工作,但我一瞬间看到了之前的屏幕,想摆脱它。如果我将以下代码放在 viewWillAppear 或 viewDidLoad 中,它将不起作用。当我将它放入 ViewDidAppear 时,它会工作并加载下一个屏幕。我怎么能在一瞬间看不到屏幕的情况下执行此操作?
这行得通,但我只看到了之前的屏幕。
override func viewDidAppear(_ animated: Bool) {
if(userInfo.Confirmed == "Yes") {
performSegue(withIdentifier: "skipRegistration", sender: self)
}
}
这不起作用:
覆盖 func viewWillAppear(_ animated: Bool) {
if(userInfo.Confirmed == "Yes") {
performSegue(withIdentifier: "skipRegistration", sender: self)
}
}
这行不通:
override func viewDidAppear(_ animated: Bool) {
if(userInfo.Confirmed == "Yes") {
performSegue(withIdentifier: "skipRegistration", sender:
self )
}
}
谢谢!
您可以在 appDelegate 的 appLaunch 方法中执行此代码,并在没有动画的情况下推送您的 View Controller 两次
注意正确维护您的 viewController 堆栈。
不理解如何推送 viewController。
我已将代码插入到 appDelegate 中,我正在尝试调用正确的 Controller 来接管,但似乎找不到它。我有一个标签栏 Controller 和一个导航 Controller 。它是这样的。
注册用户应跳至应用的第一个屏幕。
未注册用户获取这些页面:
注册屏幕
注册1屏幕
注册2屏幕
协议(protocol):屏幕 -> 点击接受协议(protocol)按钮,然后转到:
Agreement segue -> (beginApp segue) to tab bar controller then goes to
Navigation Controller -> myFirst Screen of the App!
一切正常,但我需要跳到应用程序的第一个屏幕。
我试过使用这个示例代码,但无法理解。
let navVC: UINavigationController = rootView.viewControllers![4] as! UINavigationController
let vc = navVC.topViewController as! MoreTableViewController
我希望这是有道理的!
最佳答案
您可以在 appDelegate 的 appLaunch 方法中执行此代码,并在没有动画的情况下推送您的 View Controller 两次
注意正确维护您的 viewController 堆栈。
关于ios - Swift - 如果已经注册则加载下一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315570/