2016-08-23 94 views
1

在我的iOS应用程序,我有一个日志Button从一个viewController到另一个,它使用了下面的函数去:为什么我的segue被执行?

@IBAction func logInButton(sender: AnyObject) { 
    if loggedIn == true { 
     // user is signed in 
     print("A user is logged in.") 
     uid = user.uid 
     self.currentUser(uid) 
     self.performSegueWithIdentifier("logIn", sender: sender) 
    } else { 
     print("No current user.") 
     let anim = CAKeyframeAnimation(keyPath:"transform") 
     anim.values = [ 
      NSValue(CATransform3D:CATransform3DMakeTranslation(-10, 0, 0)), 
      NSValue(CATransform3D:CATransform3DMakeTranslation(10, 0, 0)) 
     ] 
     anim.autoreverses = true 
     anim.repeatCount = 2 
     anim.duration = 7/100 
     self.passwordTextField.layer.addAnimation(anim, forKey:nil) 
     self.welcomeTextLabel.hidden = false 
     self.welcomeTextLabel.text = "Please sign in first" 
    } 
} 

有其内viewDidLoad()可更新loggedIn值运行的功能。当loggedIn == false(基于控制台输出),我测试了这个函数,并且应用程序基于在后续的viewController上执行的代码崩溃。我知道它为什么会崩溃(没有用户数据),但我不知道为什么会执行segue。

如果您需要更多代码来诊断,请询问。

+2

也许你已经从logInButton向下一个视图控制器显示“show”segue并忘记了它?这segue工作没有任何额外的代码 –

回答

4

在你的故事板中,你需要在两个视图控制器之间创建segue,而不是按钮到DestinationViewController。

请删除该segue并从您的LoginViewController创建一个segue到您的DestinationViewController。

+0

这样做了,谢谢! – adsigel