第一次 VC1 到 VC2 [self.navigationController pushViewController:mainView animated:YES] 工作正常。从 VC2 到 VC3 在 ios7 中不工作。
VC1->VC2(工作正常)
- (IBAction)loginBtnActionid)sender
{
GVMainViewController *mainView;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPhone" bundle:nil];
} else
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPad" bundle:nil] ;
}
[self.navigationController pushViewController:mainView animated:YES];
}
VC2->VC3(不工作)
- (IBAction)doneButtonActionid)sender
{
[[FinishViewController getsharedInstance]updateProfileInfo];
[self performSelectorselector(moveTo) withObject:nil afterDelay:0.5];
}
- (void)moveTo
{
GVMainViewController *mainView;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPhone" bundle:nil];
} else
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPad" bundle:nil] ;
}
[self.navigationController pushViewController:mainView animated:YES];
}
并且还获得了一些日志在意外状态下完成了导航转换。导航栏 subview 树可能会损坏。在所有 iOS 版本中,但在 ios7 中它不会推送 View Controller 。
请任何人告诉我iOS7及更低版本的解决方案。提前致谢。
mainView 应该在 performSelector 启动后台线程时被推送到主线程。
- (void)moveTo
{
GVMainViewController *mainView;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPhone" bundle:nil];
}
else
{
mainView = [[GVMainViewController alloc] initWithNibName"GVMainViewController_iPad" bundle:nil] ;
}
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController pushViewController:mainView animated:YES];
});
}
关于ios - pushviewcontroller 在 ios7 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959827/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |