2016-08-23 5 views
1

In meinem iOS app, ich habe ein Protokoll in Button von einem viewController zum anderen zu gehen, die die folgende Funktion verwendet:Warum wird meine Überleitung durchgeführt?

@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" 
    } 
} 

Es gibt eine Funktion, die innerhalb viewDidLoad() läuft, der den loggedIn Wert aktualisiert. Ich habe diese Funktion getestet, wenn loggedIn == false (basierend auf Konsolenausgabe), und die App abstürzt basierend auf Code, der auf dem folgenden viewController ausgeführt wird. Ich weiß, warum es abstürzt (keine Benutzerdaten), aber ich weiß nicht, warum das Segment überhaupt ausgeführt wird.

Wenn Sie mehr Code zur Diagnose benötigen, fragen Sie bitte.

+2

Vielleicht haben Sie "show" von logInButton zum nächsten View-Controller und vergessen Sie es? Diese Strecke funktioniert ohne zusätzlichen Code –

Antwort

4

In Ihrem Storyboard müssen Sie den Übergang zwischen zwei View-Controllern anstelle des Buttons DestinationViewController erstellen.

Bitte entfernen Sie dieses Segment und erstellen Sie einen Abschnitt von Ihrem LoginViewController zu Ihrem DestinationViewController.

+0

Das hat es geschafft, danke! – adsigel

Verwandte Themen