Ios 为什么不是';我的登录服务器不工作吗?

Ios 为什么不是';我的登录服务器不工作吗?,ios,swift,parse-platform,Ios,Swift,Parse Platform,如果用户已经登录,我需要绕过注册/登录屏幕。绝对什么也没发生。打印到日志是有效的,因此我知道问题不在于viewDidLoad()函数,而且我还知道PFUser.currentUser()不是nil。它也不是segue,因为登录按钮上使用了相同的segue,并且在该事件中有效。那么为什么它不能自动工作呢 override func viewDidLoad() { if PFUser.currentUser() != nil { println(PFUser.currentU

如果用户已经登录,我需要绕过注册/登录屏幕。绝对什么也没发生。打印到日志是有效的,因此我知道问题不在于viewDidLoad()函数,而且我还知道PFUser.currentUser()不是nil。它也不是segue,因为登录按钮上使用了相同的segue,并且在该事件中有效。那么为什么它不能自动工作呢

override func viewDidLoad() {
    if PFUser.currentUser() != nil {
        println(PFUser.currentUser())
        self.performSegueWithIdentifier("jumpToMenu", sender: self)
    }
}

使用以下代码,它将工作

 override func viewDidAppear(animated: Bool) {
if PFUser.currentUser() != nil {
    self.performSegueWithIdentifier("jumpToMenu", sender: self)
}}

诀窍是使用ViewDidDisplay。您的代码将无法在viewDidLoad中工作,因为代码在视图加载之前运行,因为所有的分段都不在适当的位置。希望这有帮助

使用下面的代码,它就会工作

 override func viewDidAppear(animated: Bool) {
if PFUser.currentUser() != nil {
    self.performSegueWithIdentifier("jumpToMenu", sender: self)
}}

诀窍是使用ViewDidDisplay。您的代码将无法在viewDidLoad中工作,因为代码在视图加载之前运行,因为所有的分段都不在适当的位置。希望这有帮助

在生命周期的后期,您是否尝试过执行segue?执行此代码时,viewcontroller和/或segue可能未完成加载。尝试从ViewWillDisplay或ViewDidDisplay开始。嗯,我一直很幸运在ViewDidDisplay中做这种事情,因为在那之前视图层次结构并不总是完全加载的。如果您检查了标识符是否正确键入,并且确定代码正在执行(在If中抛出一个断点以确保?),那么我必须查看更多代码!
jumpToMenu
是否在该VC上实际定义(您在该VC上引用的登录按钮)?不,它是在不同的视图控制器上定义的。您是否尝试在生命周期的后期执行该步骤?执行此代码时,viewcontroller和/或segue可能未完成加载。尝试从ViewWillDisplay或ViewDidDisplay开始。嗯,我一直很幸运在ViewDidDisplay中做这种事情,因为在那之前视图层次结构并不总是完全加载的。如果您检查了标识符是否正确键入,并且确定代码正在执行(在If中抛出一个断点以确保?),那么我必须查看更多代码!
jumpToMenu
是否在该VC上实际定义(您在该VC上引用的登录按钮)?不,它是在不同的视图控制器上定义的。您是否尝试在生命周期的后期执行该步骤?执行此代码时,viewcontroller和/或segue可能未完成加载。尝试从ViewWillDisplay或ViewDidDisplay开始。嗯,我一直很幸运在ViewDidDisplay中做这种事情,因为在那之前视图层次结构并不总是完全加载的。如果您检查了标识符是否正确键入,并且确定代码正在执行(在If中抛出一个断点以确保?),那么我必须查看更多代码!
jumpToMenu
是否在此VC上实际定义(您在此VC上引用的登录按钮)?不,它是在不同的视图控制器上定义的。