IOS警报未启动/单击警报转到下一页SWIFT

时间:2015-05-06 15:08:32

标签: ios swift ios8

我将以下代码用于在用户注册其帐户后将其带到登录页面的位置。我无法弄清楚如何在创建帐户时弹出“警报”框,并且用户停留在“注册”页面上,直到他们单击“警报”框底部的“登录”按钮,然后将其重定向到登录页。关于如何更改下面的当前代码的任何想法?

    // Display alert message with confirmation
    var alert = UIAlertController(title: "Registration Successful", message: "You may now login. Thank You!", preferredStyle: UIAlertControllerStyle.Alert)

    let okAction = UIAlertAction(title:"Login", style: UIAlertActionStyle.Default){ action in
        self.dismissViewControllerAnimated(true, completion: nil)
    }

    alert.addAction(okAction)


}

func displayAlertMessage(userMessage:String) {
    var alert = UIAlertController(title:"Alert", message: userMessage, preferredStyle: UIAlertControllerStyle.Alert)

    let okAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.Default, handler: nil)

    alert.addAction(okAction)

    self.presentViewController(alert, animated: true, completion: nil)

}

1 个答案:

答案 0 :(得分:1)

所以,我假设你想要一个警告,标题中写着“注册成功”,有一条消息说“你现在可以登录。谢谢!”它只有一个登录按钮(没有取消按钮)。

我认为,您在代码中缺少的是该登录操作的处理程序。 试试这个:

func displayLoginAlert() {

    var alert = UIAlertController(title:"Registration successful", 
                                  message:"You may now login. Thank You!", 
                                  preferredStyle: UIAlertControllerStyle.Alert)

    let loginAction = UIAlertAction(title:"Login", 
                                    style:UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
        // HERE you perform the segue to your LoginVC, 
        // or do whatever else you wanna do when the user clicked "Login" :)
        // for example: 
        self.performSegueWithIdentifier(theIDOfYourSegueToTheLoginVC, sender:self)
    } 

    alert.addAction(loginAction)

    self.presentViewController(alert, animated: true, completion: nil)
}

注意,如果您的部署目标是iOS 8.0.0或更高版本(我假设通过查看问题标签,这是正确的方法)。如果您想使用较低的iOS版本,则必须实现UIAlertViewDelegate protocol并且还改变了你的功能。我现在不会详细说明,但如果你确实计划部署到iOS< 8.0.0,并且对该协议的实现和设计有疑问函数考虑到不同的iOS,可以在评论中自由地说出来(并更新标签......:))