在非ViewController中显示AlertController的方法

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在非ViewController中显示AlertController的方法相关的知识,希望对你有一定的参考价值。

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


以前我们可以在任何类中使用UIAlertView的show实例方法显示消息框

但是自从废弃了UIAlertView之后,作为替代我们可以使用心得消息框弹出方法UIAlertController来显示,但是该对象只能通过ViewController的presentViewController:alert animated:YES completion:方法来显示.

那么如何在其他类中使用UIAlertController显示消息框呢?

其实很简单,我们可以通过Application的window对象定位到任何我们希望的UIViewController,从而显示消息框,示例代码如下:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Reversed" message:
                                msgString preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"OK" style:
                                   UIAlertActionStyleCancel handler:^(UIAlertAction *action){
        [self activityDidFinish:YES];
    }];
    [alert addAction:cancelAction];
    UIViewController *vc = [UIApplication sharedApplication].windows[0].rootViewController;
    [vc presentViewController:alert animated:YES completion:nil];

通过以上代码,可以看到我们是如何取得App中的ViewController对象的.

以上是关于在非ViewController中显示AlertController的方法的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 中的 UIAlertController 返回 nil

如何在非刀片模板中显示雄辩的行?

Qt:如何在非活动窗口中显示选定的文本

在非活动类中显示对话框 1x/天

如何在非活动类中显示进度对话框

统计图钻取的明细报表在非模态窗口中显示