我遇到了一个问题,我认为这是由于我错误删除了我的观点。我会尽力解释并希望所有人都可以效仿。
我有一个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删除。想知道如何删除这一大量的视图或阻止程序添加这么多。 感谢
答案 0 :(得分:0)
只需使用
mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0];
[self.navigationController pushViewController:mapView animated:YES];
浏览视图控制器。