ios - Swift - 如果已经注册则加载下一个 View Controller

标签 ios swift viewdidload viewwillappear viewdidappear

如果用户已经注册(从本地数据库检查),当我运行我的应用程序时,我想加载一个不同的 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/

相关文章:

iOS - 图标在启动时拉伸(stretch)

xcode - 每当静态变量值改变时触发一个函数

ios - UITableView 顶部的白色背景

ios - 应用启动后黑屏

ios - 我的背景音乐被播放了两次(同时)

ios - 不同的AVAudioQuality选项对生成的录音有什么影响?

ios - 显示推送通知弹出窗口时禁用点击主页按钮

iphone - 如何在 iPhone 中创建带有 2 个卷轴的 UI View

ios - Firebase 云函数始终返回 Null

swift - 从另一个被解雇的 vc 访问 viewcontroller 时运行方法