正在跳过performSegueWithIdentifier*SWIFT

Oct*_*eño 2 xcode ios segue swift

我有一个UITableViewController,我希望人们可以作为主页面访问.我有一个登录视图控制器,但我不希望这是我的初始视图控制器.我有一个if语句检查用户是否已经登录过.如果没有,我想对登录视图控制器执行segue.然而,当我运行应用程序时,它会通过if语句,识别出用户是== nil,然后直接执行performSegueWithIdentifier操作.

override func viewDidLoad() {
        super.viewDidLoad()

        if user == nil {

            self.performSegueWithIdentifier("LoginSegue", sender: self)

        }
}
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

Chr*_*örz 6

您应该将代码移动到viewWillAppearor viewDidAppear方法中.那应该正确使用.

但现在这种观点在短时间内闪烁.要删除闪烁,只需隐藏viewWillApear方法中的视图:

self.view.hidden = true
Run Code Online (Sandbox Code Playgroud)

此外,viewDidLoad每次出现视图时都不会调用该方法,但只会在第一次加载时调用该方法.例如,在您执行赛格瑞并返回到视图,它不会再次加载,但只要求viewWillAppearviewDidAppear试.