如何使UIAlert按钮按下前进到下一个Storyboard?

时间:2016-01-08 07:53:18

标签: ios iphone xcode swift

我对Swift(以及一般编码)和本网站都很陌生。

我现在有点问题。在我的应用程序中,当计时器达到0时,我会发出警报。在该警报中,有2个按钮。一个人说"分享"另一个说"继续"。我想这样做,当用户点击"继续"时,将向他们显示下一个故事板。截至目前,我按下的任何按钮都会关闭警报,但保持在同一个故事板上。 (它还会在控制台上打印出我按下的按钮,当然这只是我要看的。)

我该怎么做呢?这是我的代码,万一有人想知道。

let alert = UIAlertController(title: "Time's Up!", message: "What would you like to do now?", preferredStyle: .Alert)
let firstAction = UIAlertAction(title: "Continue", style: .Default) { (alert: UIAlertAction!) -> Void in
    NSLog("You pressed button one")
}

let secondAction = UIAlertAction(title: "Share", style: .Default) { (alert: UIAlertAction!) -> Void in
    NSLog("You pressed button two")
}

alert.addAction(firstAction)
alert.addAction(secondAction)
presentViewController(alert, animated: true, completion:nil)

2 个答案:

答案 0 :(得分:2)

试试这个:

// Create the alert controller
    var alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .Alert)

// Create the actions
    var okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) {
        UIAlertAction in
        NSLog("OK Pressed")
        let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") as UIViewController
        self.presentViewController(vc, animated: true, completion: nil)
    }

    var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
        UIAlertAction in
        NSLog("Cancel Pressed")
        //do whatever you want here
    }

// Add the actions
    alertController.addAction(okAction)
    alertController.addAction(cancelAction)

// Present the controller
    self.presentViewController(alertController, animated: true, completion: nil)

如果您尚未设置ViewControllerIdentifier

http://i.stack.imgur.com/8M7Ia.png

您需要设置右栏中可以找到的标识符值

答案 1 :(得分:1)

以下是可能对您有所帮助的代码。使用操作创建AlertController时,可以在定义按钮时提供按钮的操作和样式。在下面的代码中,操作位于闭包(块)中,样式定义为.Default.Cancel

let alert = UIAlertController(title: "Time's Up!", message: "What would you like to do now?", preferredStyle: .Alert)
let firstAction = UIAlertAction(title: "Continue", style: .Default) { (alert: UIAlertAction!) -> Void in

   // Action when you press button goes here 
      print("Here you show next storyboard item.")
  //  Code to push new ViewController. For example : 
      self.navigationController?.pushViewController(newVCInstance, animated: true)
}

let secondAction = UIAlertAction(title: "Share", style: .Default) { (alert: UIAlertAction!) -> Void in
 print("Here you share things.")
    // Code to share things.
}

let thirdAction = UIAlertAction(title: "Cancel", style: . Cancel) { (alert: UIAlertAction!) -> Void in
     print("Just dismissing the Alert Controller.")
}


alert.addAction(firstAction)
alert.addAction(secondAction)
alert.addAction(thirdAction)

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