【问题标题】:back button doesn't show up后退按钮不显示
【发布时间】:2012-04-24 20:16:37
【问题描述】:
我在 UINavigationController 上推了一个 ViewController,但我没有看到“返回”按钮...导航栏是空的,但在那里。
在我的故事板中,我的初始视图控制器是 NavigationController,我在 Simulated Metrics 部分将“顶部栏”设置为“无”。当我切换到推断或导航栏时,一切正常,我看到带有文本“后退”的后退按钮。 (但是我所有的视图都很丑,因为我出于某种原因删除了 NavBar)。
我怎样才能保留我的设计(NavBar 隐藏/不存在)并能够使用 NavBar 和 Back 按钮推送新的 ViewController。按需导航栏!
谢谢
【问题讨论】:
标签:
cocoa-touch
uinavigationcontroller
【解决方案1】:
找到了解决方案:只需将我的 AppDelegate 作为 UINavigationController 委托并手动隐藏/显示 NavBar。
在我的故事板中,导航控制器是:
模拟指标 -> 顶栏 -> 无
导航控制器 -> 栏可见性 -> 取消选中“显示导航
酒吧”
AppDelegate .h/.m:
@interface AppDelegate : UIResponder <UIApplicationDelegate, UINavigationControllerDelegate>
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (something) {
navigationController.navigationBarHidden = TRUE;
}
}
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (somethingElse) {
navigationController.navigationBarHidden = FALSE;
}
}
【解决方案2】:
您想在应用程序中配置导航
在 App 委托中的 ApplicationDidFinishLoading 方法中试试这个
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[window makeKeyAndVisible];
[window addSubview:navController.view];
在按钮的操作方法中使用它来改变视图
DetailViewController *ViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushNavigationController:ViewController animated:YES];