【问题标题】:Segue between 2 view controllers (modal) via UIButton crash in Xcode 6 and Swift通过 Xcode 6 和 Swift 中的 UIButton 崩溃在 2 个视图控制器(模态)之间进行切换
【发布时间】:2015-05-03 08:34:02
【问题描述】:

所以我正在练习 iOs 编程,但我似乎无法找到解决问题的方法。我有一个“loginViewController”,我希望我的 UIButton“Creer un compte”以模态方式呈现我的“注册”视图控制器。这是问题所在,当我启动模拟器并单击按钮时,它会崩溃并将我带到 AppDelegate 的第一行,

“类 AppDelegate:UIResponder、UIApplicationDelegate、Thread1 信号 SIGABRT。”

我通过控制将我的 UIButton 拖到 Register 视图控制器来完成 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

类 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)。

感谢大家的帮助,

查尔斯

【问题讨论】:

    标签: ios swift xcode6


    【解决方案1】:

    当您从一个按钮到另一个控制器进行转场时,无需任何代码即可执行转场——您应该删除 showRegisterPage 方法。我不确定这是否是您唯一的问题,但您应该删除该方法,看看是否仍然出现错误。

    【讨论】:

    • 您好,rdelmar,我刚刚尝试删除它,但它仍然不起作用。
    • @cvinette,它会执行 segue,还是在此之前崩溃?
    • 它在它发生之前就崩溃了。我试图将同一个按钮绑定到另一个视图,它可以正常工作。但是,一旦我拖动它使其执行模态转场,它就会崩溃并将我带到 appdelegate。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多