[英]pushviewcontroller is not working in ios7
第一次VC1到VC2 [self.navigationController pushViewController:mainView animation:YES]工作正常。 從VC2到VC3在ios7中不起作用。
VC1-> VC2(工作正常)
- (IBAction)loginBtnAction:(id)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)doneButtonAction:(id)sender
{
[[FinishViewController getsharedInstance]updateProfileInfo];
[self performSelector:@selector(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];
}
並獲得一些日志在意外狀態下完成導航過渡。 導航欄子視圖樹可能已損壞。 在所有iOS版本中,但是在ios7中,它沒有推送視圖控制器。
請任何人清楚地告訴我針對iOS7及更低版本的解決方案。 提前致謝。
當performSelector啟動后台線程時,應將mainView推入主線程。
- (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];
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.