自定义UIAlertController - 应用程序尝试以模态方式呈现活动控制器

时间:2017-04-07 14:19:06

标签: swift swift3 uialertcontroller

应用程序尝试以模态方式呈现活动控制器

我正在尝试创建自定义UIAlertController。 因此从不同的地方将更容易使用。 但是我收到了这个错误:

  

由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:'应用程序尝试以模态方式呈现活动控制器

class CustomAlert: UIAlertController,  UIImagePickerControllerDelegate, UINavigationControllerDelegate  {

    private static var sheet : UIAlertController = UIAlertController()
    static let instance = CustomAlert()

    func create(title: String, message: String) -> CustomAlert {
        CustomAlert.sheet = UIAlertController(title: title, message: message, preferredStyle: .actionSheet)
        return self
    }

    func addlibrary() -> CustomAlert{
        let libraryAction = UIAlertAction(title: "library", style: .default, handler: nil)
        CustomAlert.sheet.addAction(libraryAction)
        return self
    }

    func show(on vc : UIViewController){
          UIApplication.shared.keyWindow?.rootViewController?.present(vc, animated: true, completion: nil)

    }
}

问题出在哪里? 感谢

1 个答案:

答案 0 :(得分:1)

您正试图在show方法中显示错误的控制器。

变化:

UIApplication.shared.keyWindow?.rootViewController?.present(vc, animated: true, completion: nil)

为:

vc.present(self, animated: true, completion: nil)