2015-04-12 3 views
1

Я настраиваю знак вверх/страница входа с помощью рамки PARSE на XCode 6.performSegueWithIdentifier вызывает сбой

Когда я пытаюсь выполнить SEGUE (пишется correcty), парить, сбой приложения, даже если segue находится внутри оператора if.

Вот код:

import UIKit 
import Parse 

class ViewController: UIViewController, UINavigationControllerDelegate{ 

    var signUpMode = false 

    func displayAlert(title:String, message:String){   
     let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert) 
     alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)) 
     self.presentViewController(alert, animated: true, completion: nil)   
    } 

    //Outlet and actions  

    @IBOutlet var username: customTextField!  
    @IBOutlet var email: customTextField! 
    @IBOutlet var password: customTextField! 

    //Need the outlets for changes betweeen signUp and logIn modes!!! 


    @IBAction func signUp(sender: AnyObject) { 

     if signUpMode == true { 

     var user = PFUser() 
     user.username = username.text 
     user.password = password.text 
     user.email = email.text 

     // other fields can be set just like with PFObject 
     //user["phone"] = "415-392-0202" 

     user.signUpInBackgroundWithBlock { 
      (succeeded: Bool!, error: NSError!) -> Void in 
      if error == nil { 
       // Hooray! Let them use the app now. 
      } else { 
       println("error") 
       self.displayAlert("Username already in use", message: "Please use another username") 
      } 
     } 
     } 
     else { 

     PFUser.logInWithUsernameInBackground(email.text, password:password.text) { 
      (user: PFUser!, error: NSError!) -> Void in 

      if user != nil {      
       self.displayAlert("You're in", message: "And you'll be successful")      
       self.performSegueWithIdentifier("goToPost", sender: self)      
      } else {      
       self.displayAlert("Wrong username or password", message: "Please try again") 
      } 
     } 
    }  


    override func viewDidLoad() { 
    super.viewDidLoad()  
    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 


    override func viewWillAppear(animated: Bool) { 

     if signUpMode == false {    
      self.username.hidden = true 
      self.email.placeholder = "username"   
     }   
    } 

    override func viewDidAppear(animated: Bool) { 

     if PFUser.currentUser() != nil {    
      performSegueWithIdentifier("goToPost", sender: self)    
     }  
    } 
} 

переход находится внутри метода viewWillAppear. PFUser().currentUser() хранит информацию о текущем вошедшего пользователя, так что nil если ни один пользователь не вошел в систему.

Можете ли вы выяснить, почему он выходит из строя? Я попытался поставить сеге внутрь viewDidLoad, но ничего больше, он даже не разбился.

+0

Пожалуйста, сообщите об ошибке, пожалуйста. – Schemetrical

+0

Я получаю только SIGABRT на AppDelegate.swift @Schemetrical – dpstart

+0

Да, но что говорит SIGABRT? Вы что-то неправильно использовали в раскадровке? – Schemetrical

ответ

0

Попробуйте выполнить segueing in viewDidAppear: и проверьте, соответствует ли ваш идентификатор segue тому, который находится на вашем раскадровке.

+0

Я уже segueing там. и да, идентификатор совпадает. – dpstart

Смежные вопросы