通过Ucodeutton在Xcode 6和Swift

问题描述:

两个视图控制器(模态)之间争论所以我正在练习iOs编程,我似乎无法找到解决我的问题。我有一个“loginViewController”,我希望我的UIButton“Creer un compte”模态地呈现我的“注册”视图控制器。这里是这个问题,当我启动模拟器时,我点击按钮,它崩溃并将我带到AppDelegate的第一行,通过Ucodeutton在Xcode 6和Swift

“class AppDelegate:UIResponder,UIApplicationDelegate,Thread1 signal SIGABRT。”

我通过控制拖动我的UIButton到注册视图控制器做了segue。

下面是代码:

import UIKit 

类LoginViewController:UIViewController的{

@IBOutlet weak var LoginScreenImage: UIImageView! 

@IBOutlet weak var codeTextField: UITextField! 

@IBOutlet weak var nipTextField: UITextField! 

@IBAction func showRegisterPage(sender: AnyObject) { 

    let registerViewController = self.storyboard?.instantiateViewControllerWithIdentifier("RegisterViewController") as RegisterViewController 
    self.showViewController(registerViewController, sender: self) 
} 



let client = Client.sharedInstance 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    LoginScreenImage.image = UIImage(named: "UQAMLOGO") 
} 

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




@IBAction func connect() { 
    let code = codeTextField.text 
    let nip = nipTextField.text 

    if code != nil && nip != nil { 
     client.login(code, password: nip, callback: { (response) in 
      if let response = response { 
       if response.status == LoginStatus.Ok { 
        // Good login. 
        let homeViewController = self.storyboard!.instantiateViewControllerWithIdentifier("HomeViewController") as HomeViewController 

        self.showViewController(homeViewController, sender: self) 
       } 
      } else { 
       // Error 
      } 
     }) 
    } 
} 

}

和RegisterViewController:

import UIKit 

类RegisterV iewController:{的UIViewController

@IBOutlet weak var firstNameTextField: UITextField! 

@IBOutlet weak var lastNameTextField: UITextField! 

@IBOutlet weak var emailTextField: UITextField! 

@IBOutlet weak var passwordTextField: UITextField! 

let client = Client.sharedInstance 

override func viewDidLoad() { 



super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 



} 


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

@IBAction func register() { 

    let firstName = firstNameTextField.text 
    let lastName = lastNameTextField.text 
    let email = emailTextField.text 
    let password = passwordTextField.text 

    if(firstName != nil && lastName != nil && email != nil && password != nil){ 

     client.register(email, password: password, firstName: firstName, lastName: lastName, callback: {(response) in 
      if let response = response{ 
       if response.status == RegisterStatus.Ok{ 
        let loginViewController = self.storyboard!.instantiateViewControllerWithIdentifier("LoginViewController") as LoginViewController 

        self.showViewController(loginViewController, sender: self) 
       } 
      }else{ 
       //erreur 
      } 
      }) 
    } 
} 

}

我试图以编程方式做到这一点,试图将viewControllers重置为默认类别(UIViewController的)。

感谢大家的帮助,

查尔斯

当你从一个按钮到另一个控制器SEGUE,而不需要任何代码执行SEGUE - 你应该删除showRegisterPage方法。我不确定这是否是您唯一的问题,但您应该删除该方法,然后查看是否仍然出现错误。

+0

嗨rdelmar,我只是试图删除它,它仍然无法正常工作。 – cvinette 2015-03-02 21:09:19

+0

@cvinette,它执行segue,还是在发生这种情况之前崩溃? – rdelmar 2015-03-02 23:09:38

+0

它发生之前崩溃。我试图将同一个按钮绑定到另一个视图,并且没有问题。但是,只要我拖动它,以便它执行一个模态赛格,它就会崩溃并将我带到appdelegate。 – cvinette 2015-03-02 23:38:32