我在使用3 UIViewController
的iPad应用程序上工作:
第一个包含UITableView
。在" didSelectRowAtIndexPath
"它打开一个带有第二个ViewController
的模态,就像那样:
NavRapportViewController *nav=[[NavRapportViewController alloc]initWithRootViewController:secondViewController];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
nav.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[XAppDelegate.window.rootViewController presentViewController:nav animated:YES completion:nil];
在第二个视图中,有一个用于打开第三个视图的按钮:
GalleryLayout *layout = [[GalleryLayout alloc] init];
GalleryViewController *gallery = [[GalleryViewController alloc] initWithCollectionViewLayout:layout];
[gallery setLegID:monLeg.legId];
gallery.delegate = self;
[self.navigationController pushViewController:gallery animated:YES];
最后,在第三个视图中有一个后退按钮。当我按下后退按钮时,我应该返回第二个视图。但在实践中,第二种观点在不到一秒的时间内出现,而模式则忽略了它。
我试图像这样覆盖backButton动作:
-(void)backPressed:(id)sender {
[self.navigationController popToViewController:self.delegate animated:YES];
}
但结果是一样的。
你知道为什么模态会自行关闭,我应该如何保持它开放?
答案 0 :(得分:0)
第二个视图控制器是导航控制器的根视图控制器。你可以弹出到root视图控制器。
-(void)backPressed:(id)sender {
//[self.navigationController popToRootViewControllerAnimated:YES];
//OR
[self.navigationController popViewControllerAnimated:YES];
}