使用 UIalertview 我们可以显示来自任何类的警报,它总是显示在当前视图控制器上方
我正在使用下面的代码片段来找出当前的视图控制器并在上面显示 alertviewcontroller。
UITabBarController* tabBarController = (UITabBarController*) [[[AppDelegate sharedInstance]window] rootViewController];
id obj= [[[AppDelegate sharedInstance]window]rootViewController];
if([obj isMemberOfClass:[UITabBarController class]]){
UINavigationController *navController = [tabBarController selectedViewController];
UIViewController *vuContollerObj = [navController topViewController];
dispatch_async(dispatch_get_main_queue(), ^ {
[vuContollerObj presentViewController:alert animated:YES completion:nil];
});
}
else if([obj isMemberOfClass:[CommonNavigationController class]] || [obj isMemberOfClass:[UINavigationController class]]){
UINavigationController *navObj= obj;
UIViewController *vuContollerObj = [navObj topViewController];
dispatch_async(dispatch_get_main_queue(), ^ {
[vuContollerObj presentViewController:alert animated:YES completion:nil];
});
}
else{
dispatch_async(dispatch_get_main_queue(), ^ {
[obj presentViewController:alert animated:YES completion:nil];
});
}
问题一:
应用委托
当我尝试显示警报消息时,由于即将到来的视图控制器,它会被隐藏,并且会出现很短的时间。
问题2:
从现有的视图控制器推送新的视图控制器
当我尝试在视图中显示消息时确实加载了新的视图控制器......我的方法将旧的视图控制器检测为当前的视图控制器。
任何解决此问题的帮助将不胜感激。