我似乎无法在启动视图时使警报视图弹出。代码如下。

import UIKit

class StartController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.white;

        startTest();
    }

    func startTest()
    {
        let alerta = UIAlertController(title: "Invalid Test", message: "Testing alert controller", preferredStyle: UIAlertControllerStyle.alert);

        alerta.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil));

        self.present(alerta, animated: true, completion: nil);
    }
}

最佳答案

问题是在viewDidLoad中,视图层次结构未完全设置。如果使用viewDidAppear,则将设置层次结构。

如果您确实想在viewDidLoad中调用此警报,可以通过将演示文稿调用包装在此GCD块中以引起轻微延迟来进行

 DispatchQueue.main.async {
    // Run UI Updates or call completion block
      startTest()
 }

或用于
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    startTest()
}

关于ios - UIAlertController在Swift 3的启动 View 中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50616615/

10-09 22:08