从自定义类中显示alertController

Nic*_*las 1 alert nsobject ios swift uialertcontroller

我正在尝试从我制作的类中显示AlertController.由于AlertController是UIResponder的子类,我使用Xcode建议我的以下代码行

superclass?.presentViewController(alertController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

但我无法编译,因为AnyClass?没有任何成员presentViewController.我的类是NSObject的子类.

还有其他方法吗?谢谢

Bur*_*ala 6

那么你只需要找到最顶层的视图控制器并alertcontroller从那里呈现.

UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

while (topController.presentedViewController) {
    topController = topController.presentedViewController;
}
[topController presentViewController:alertController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

学分

注意:这是代码的objective-c版本.请将其转换为swift.

迅速

let topController = UIApplication.sharedApplication().keyWindow!.rootViewController as UIViewController

while (topController.presentedViewController) {
    topController = topController.presentedViewController;
}
topController.presentViewController(alertController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)