ZSSLogin *login = [self.storyboard instantiateVIEwControllerWithIDentifIEr:@"ZSSLogin"];[[UIApplication sharedApplication].keyWindow setRootVIEwController:[[UINavigationController alloc] initWithRootVIEwController:login]];
假设用登录vIEwController替换当前的rootVIEwController(tabbarController).
在iOS7上,这可以正常工作.但是,在iOS8中,它将显示登录VC一瞬间,但然后返回到tabbarController,就像没有发生任何事情一样.
关于发生了什么的任何想法?
解决方法 我有完全相同的问题,登录VC将显示一瞬间,然后返回我的SplitVIEwController,只有iOS8,iOS7工作正常.在我的场景中,这只发生在我在注销之前提交AlertVIEw时,如果我直接更改rootVIEwController而没有AlertVIEw它工作正常.
所以我用这个简单的解决方法修复了它:
- (voID)alertVIEw:(UIAlertVIEw *)alertVIEw clickedbuttonAtIndex:(NSInteger)buttonIndex {... // Added a delay to avoID an iOS8 BUG,where setting rootVIEwControler doesn't work after dismissing an AlertVIEw. (For some reason dispatch_after isn't working here) [self performSelector:@selector(logout) withObject:nil afterDelay:0.5];...
我的猜测是在iOS8中,OS使用Window或rootVIEwController来设置和删除AlertVIEw,存储对rootVIEwController的引用,然后在解除AlertVIEw后将rootVIEwController设置为该引用.因此,如果您在 *** 作系统将其设置回来之前更改rootVIEwController,它将替换您的更改.如果等待半秒直到 *** 作系统完成对rootVIEwController的更改,问题就解决了.当然,这是一个假设.
总结以上是内存溢出为你收集整理的设置keyWindow rootViewController在iOS8中不起作用全部内容,希望文章能够帮你解决设置keyWindow rootViewController在iOS8中不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)