簡體   English   中英

在Xcode 6和Swift中通過UIButton崩潰在兩個視圖控制器(模態)之間進行爭用

[英]Segue between 2 view controllers (modal) via UIButton crash in Xcode 6 and Swift

所以我正在練習iOs編程,我似乎無法找到解決問題的方法。 我有一個“loginViewController”,我希望我的UIButton“Creer un compte”以模態方式呈現我的“注冊”視圖控制器。 這是問題,當我啟動模擬器並單擊按鈕時,它會崩潰並將我帶到AppDelegate的第一行,

“AppDelegate類:UIResponder,UIApplicationDelegate,Thread1信號SIGABRT。”

我通過控制將我的UIButton拖到Register視圖控制器來完成segue。

這是代碼:

import UIKit

class 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

class RegisterViewController: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方法。 我不確定這是你唯一的問題,但你應該刪除該方法,看看你是否仍然得到錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM