弹出不足以删除视图控制器

时间:2014-04-14 03:19:59

标签: ios objective-c uiviewcontroller

我遇到了一个问题,我认为这是由于我错误删除了我的观点。我会尽力解释并希望所有人都可以效仿。 我有一个UISplitview应用,基本上有两个视图。主要详细视图,以及基本上是地图的视图。在表中选择某个字符串后,将调用此代码(此代码位于detailview中,但rainObject是从UIViewController传入的。

-(void)setReceivedRainObject:(id)receivedRainObject{
    if ([receivedRainObject isEqualToString:@"Test"]){
        mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0];
        [self.navigationItem setHidesBackButton:NO animated:NO];
        [self.navigationController setNavigationBarHidden:NO animated:YES];
        [self.navigationController pushViewController:mapView animated:NO];
    }
}

因此,上面的代码按照预期在详细信息屏幕中加载我的地​​图。 但是,当我从左视图控制器中单击第一个选项(test)时,它会调用一个新的视图控制器(viewcontroller2,其中一行名为test2),第二个控制器调用第三个控件(viewcontroller3,其中一行名为test3) 在viewDidDisappear的viewcontoller3和viewWillAppear测试中我有这段代码

 [self.detailViewController.navigationController popViewControllerAnimated:NO];

因此,当我向下钻取viewcontroller时,当我单击后退按钮时,它会弹出一个地图,当testview加载时会弹出第二个。留下我的详细视图,显示我是如何开始的。 但是,我注意到如果我点击"测试"按钮两次,并尝试返回,有一个"额外的屏幕"本来应该用pop删除。想知道如何删除这一大量的视图或阻止程序添加这么多。  感谢

1 个答案:

答案 0 :(得分:0)

只需使用

mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0];
[self.navigationController pushViewController:mapView animated:YES];

浏览视图控制器。