导航栏未显示在页面顶部。怎么了?

时间:2010-04-21 02:48:12

标签: iphone objective-c xcode iphone-sdk-3.0

我有一个看似简单的问题。我声明了一个导航控制器,但出现的导航栏没有显示在页面顶部。

http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs410.snc3/24784_889732028002_28110599_54506042_4580563_n.jpg

我声明导航控制器就像这样......

UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:setupViewController];

[self.view addSubview:navController.view];

有什么想法吗?

2 个答案:

答案 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”是什么)