我有一个看似简单的问题。我声明了一个导航控制器,但出现的导航栏没有显示在页面顶部。
我声明导航控制器就像这样......
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:setupViewController];
[self.view addSubview:navController.view];
有什么想法吗?
答案 0 :(得分:1)
marcc说你不应该将导航控制器视图作为子视图添加到视图中。实际上,必须创建层次结构,使得视图控制器是导航控制器中的根视图控制器。
视图控制器的层次结构通常构造为: 窗口 - >标签栏控制器 - >导航控制器 - >查看控制器。
标签栏控制器和导航控制器绝对是可选的。
您可以使用pushViewController:animated和popViewController:动画方法从导航控制器中推送和弹出视图控制器。
答案 1 :(得分:0)
您不应该将NavigationController作为子视图添加到这样的视图中。这完全打败了目的。
您需要使用UINavigationController
创建initWithRootViewController
,然后展示它。尝试类似:
UINavigationController *controller = [[UINavigationController alloc]initWithRootViewController:setupViewController];
[self presentModalViewController:controller animated:YES];
[controller release];
(您可能需要self.navigationController或presentModalViewController行中的其他内容,具体取决于“self”是什么)