gpt4 book ai didi

ios - 在主应用程序窗口中显示警报 Controller ?

转载 作者:行者123 更新时间:2023-11-28 21:15:36 26 4
gpt4 key购买 nike

在我的模型类中,我想在发生不良事件时显示警报(例如,服务器发送错误)。但是,我不想理会委托(delegate)或 KVO。

有没有一种简单的方法可以显示“主”窗口的警报,将 View 置于其他 View 之上?

目前我使用这段代码(不工作,如果放在 viewController 类之外):

UIAlertController *vc =  [UIAlertController alertControllerWithTitle:@"Произошла ошибка"
message:response
preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:vc animated:YES completion:^{

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[vc dismissViewControllerAnimated:YES completion:nil];
});
}];

显然,没有 View 的类不能使用:

    [self presentViewController:vc animated:YES completion:^{

最佳答案

根据@Ashley Mills 的解决方案,您可以使用此方法找到顶 View Controller

- (UIViewController *)currentTopViewController
{
UIViewController *topVC = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
while (topVC.presentedViewController)
{
topVC = topVC.presentedViewController;
}
if ([topVC isKindOfClass:[UINavigationController class]]) {
return [(UINavigationController *)topVC topViewController];
}
return topVC;
}

currentTopViewController 方法的返回对象中显示警告

关于ios - 在主应用程序窗口中显示警报 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41381159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com