我有一个带有导航栏的tabbar应用程序。对于其中一个操作,我以编程方式实例化导航控制器并添加带有tableview的视图。我想以编程方式单击新导航栏上的按钮来删除此导航栏和tableview。怎么做?
我试过popview但它没有弹出。
答案 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时。做类似上面的步骤。