如何删除带有视图的导航控制器

时间:2010-08-04 04:50:59

标签: iphone uinavigationcontroller uinavigationbar ios4

我有一个带有导航栏的tabbar应用程序。对于其中一个操作,我以编程方式实例化导航控制器并添加带有tableview的视图。我想以编程方式单击新导航栏上的按钮来删除此导航栏和tableview。怎么做?

我试过popview但它没有弹出。

1 个答案:

答案 0 :(得分:0)

隐藏它

[[self navigationController] setNavigationBarHidden:YES];

如果您在另一个UIViewController之上添加了UINavigationController,那么即使您删除当前视图和所有子视图,也无法从uiNaviagation控制器中删除导航栏。 (父uiviewcontroller也获得导航栏)

解决此问题的一种方法是,访问应用委托,然后从窗口中删除顶视图 添加UINavigationController

AppDelegate *dg = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
NSArray *ar = [[dg window] subviews];
//then remove all the views in ar
//then add uinavcontroller
[[dg window] addSubView:[uinavcontroller view]];

然后添加UINavigationController,当你想用第一个UiViewController替换UInavigationcontroller时。做类似上面的步骤。