Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 切换rootviewcontroller时,当alertview可见时,窗口坐标发生变化_Ios_Objective C_Uinavigationcontroller_Landscape_Uiwindow - Fatal编程技术网

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
作为windows
rootViewController
的窗口坐标问题,因此我创建了一个简单的示例项目,该项目也复制了它

我启动应用程序时,初始的
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,当前也会发生此切换。谢谢,但是需要一些其他的解决方法。