2010-04-21 72 views
1

我有什么似乎是一个简单的问题。我声明了一个导航控制器,但是出现的导航栏不显示在页面的顶部。导航栏不显示在页面顶部。怎么了?

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

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

的UINavigationController * navController = [[UINavigationController的页头] initWithRootViewController:setupViewController];

[self.view addSubview:navController.view];

任何想法?

+2

也许它飞走了? – 2010-04-21 02:52:00

+0

我打算编辑这个,但决定不抢别人的幽默:) – coneybeare 2010-04-21 05:51:10

回答

1

marcc是正确的说,你不应该添加导航控制器视图作为视图的子视图。实际上,必须创建层次结构,以便您的视图控制器是导航控制器中的根视图控制器。

视图控制器的层次结构通常构造为: 窗口 - >标签栏控制器 - >导航控制器 - >视图控制器。

标签栏控制器和导航控制器绝对是可选的。

您可以使用pushViewController:animated和popViewController:动画方法从导航控制器中推送和弹出视图控制器。

0

您不应该将NavigationController作为子视图添加到像这样的视图中。这完全破坏了目的。 您需要使用initWithRootViewController创建UINavigationController然后显示它。尝试是这样的:

UINavigationController *controller = [[UINavigationController alloc]initWithRootViewController:setupViewController]; 
[self presentModalViewController:controller animated:YES]; 
[controller release]; 

(你可能想self.navigationController或别的东西在presentModalViewController线,这取决于“自我”是)