后退按钮关闭modalview

时间:2014-05-12 11:03:55

标签: ios objective-c uiviewcontroller uinavigationcontroller

我在使用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];
}

但结果是一样的。

你知道为什么模态会自行关闭,我应该如何保持它开放?

1 个答案:

答案 0 :(得分:0)

第二个视图控制器是导航控制器的根视图控制器。你可以弹出到root视图控制器。

-(void)backPressed:(id)sender {

    //[self.navigationController popToRootViewControllerAnimated:YES];

    //OR

    [self.navigationController popViewControllerAnimated:YES];

}