Ios 切换rootviewcontroller时,当alertview可见时,窗口坐标发生变化
我面临一个新的Ios 切换rootviewcontroller时,当alertview可见时,窗口坐标发生变化,ios,objective-c,uinavigationcontroller,landscape,uiwindow,Ios,Objective C,Uinavigationcontroller,Landscape,Uiwindow,我面临一个新的UINavigationController作为windowsrootViewController的窗口坐标问题,因此我创建了一个简单的示例项目,该项目也复制了它 我启动应用程序时,初始的ViewController按钮具有以下操作: - (IBAction)buttonTapped:(id)sender { [[[UIAlertView alloc] initWithTitle:@"" message:@"New VC in 3 seconds" delegate
UINavigationController
作为windowsrootViewController
的窗口坐标问题,因此我创建了一个简单的示例项目,该项目也复制了它
我启动应用程序时,初始的ViewController
按钮具有以下操作:
- (IBAction)buttonTapped:(id)sender {
[[[UIAlertView alloc] initWithTitle:@"" message:@"New VC in 3 seconds" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
[self performSelector:@selector(delayCall) withObject:nil afterDelay:3];
}
- (void)delayCall {
NewViewController *nvc = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:nvc];
[[UIApplication sharedApplication].keyWindow setRootViewController:nav];
}
NewViewController
处于横向模式,但如果在更改窗口的rootViewController
之前显示UIAlertView
,并且未被取消,则会出现如下屏幕截图所示的情况
如果在更改rootViewController
之前未显示警报视图或关闭AlertView
,则新的ViewController
将正常运行
有什么办法可以防止这种情况发生吗?切换
rootViewController
并显示AlertView
是我们正在创建的更大应用程序的一部分。不幸的是,我们现在无法更改它,因此我们必须为此流本身找到一些解决方法。当警报视图被取消时,您是否尝试过切换根视图控制器?这将确保在切换时警报消失。@Stonz2“是”这将解决问题,但即使未解除alertview,当前也会发生此切换。谢谢,但是需要一些其他的解决方法。