UIAlertController自动布局警告

时间:2016-05-27 03:06:20

标签: swift autolayout uialertview uialertcontroller

我的代码适用于所有其他按钮,但它不适用于某个特定按钮。代码是:

@IBAction func Quiz(sender: AnyObject) {
        NSUserDefaults.standardUserDefaults().setInteger(1, forKey: "QuizLevel")

        let refreshAlert = UIAlertController(title: "Alert!", message: "Please reset.", preferredStyle: UIAlertControllerStyle.Alert)

        refreshAlert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: nil))

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

我得到的自动布局警告是:

2016-05-26 20:01:17.640 Quiz[4250:297386] <UIView: 0x7fca60571a80; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fca6056d0c0>>'s window is not equal to <UIAlertController: 0x7fca60587620>'s view's window!

我该如何纠正?

1 个答案:

答案 0 :(得分:-3)

当前警报控制器命令将在主线程中,因为更改在主屏幕上执行,这就是它显示错误的原因。

 dispatch_async(dispatch_get_main_queue(), {


  let alertController = UIAlertController(title: "Hey AppCoda", message: "What do you want to do?", preferredStyle: .Alert)

        let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
        alertController.addAction(defaultAction)

        presentViewController(alertController, animated: true, completion: nil)
   })