fab*_*abb 7 ios8 uialertcontroller
遗留物UIAlertView和新UIAlertController物之间的区别在于后者需要与特定的视图控制器一起呈现presentViewController:animated:completion:.这给我的用例带来了一个尴尬的问题:UIAlertController当第二个视图控制器出现时(例如,由于网络连接失败而导致的错误对话框),如果已经显示(例如评级对话框)该怎么办?我经历过,在这种情况下,第二个UIAlertController只是没有显示.
编辑:目前我尝试显示警报,我不知道目前是否有任何提示.
你如何应对这种情况?
由于UIAlertController本身是 a ,因此您可以通过从现有的一个中呈现来在第一个之上UIViewController呈现第二个:UIAlertController
alertController.PresentViewController(alertController2, animated: true, completionHandler: null)
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方法,找出我可以提供警报的视图控制器.我也在这里发布了答案:
@implementation UIViewController (visibleViewController)
- (UIViewController *)my_visibleViewController {
if ([self isKindOfClass:[UINavigationController class]]) {
// do not use method visibleViewController as the presentedViewController could beingDismissed
return [[(UINavigationController *)self topViewController] my_visibleViewController];
}
if ([self isKindOfClass:[UITabBarController class]]) {
return [[(UITabBarController *)self selectedViewController] my_visibleViewController];
}
if (self.presentedViewController == nil || self.presentedViewController.isBeingDismissed) {
return self;
}
return [self.presentedViewController my_visibleViewController];
}
@end
// To show a UIAlertController, present on the following viewcontroller:
UIViewController *visibleViewController = [[UIApplication sharedApplication].delegate.window.rootViewController my_visibleViewController];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5378 次 |
| 最近记录: |