在app delegate中,在didFinishLaunchingWithOptions函数中,我有以下代码来加载一个UINavigationController的视图:
UINavigationController *navcon=[[UINavigationController alloc] initWithNibName:@"ThirdView" bundle:[NSBundle mainBundle]];
FirstView *fv=[[FirstView alloc] init];
[navcon pushViewController:fv animated:NO];
[fv release];
[self.window addSubview:navcon.view];
[self.window makeKeyAndVisible];
return YES;
.xib“ThirdView”,即UINavigationController视图,在Interface Builder中实际上是这样的:
但是当我运行应用程序时,应用程序看起来像这样:
为什么应用程序没有加载“ThirdView.xib”UINavigationController的导航栏设计,因为我在Interface Builder中设计了它?
更新:以下是IB中“FirstView”的样子:
答案 0 :(得分:0)
我不相信你想要做的事情是有效的。 UINavigationController旨在成为其他视图的容器。你创建了UINavigationController,然后通过pushViewController:animated:将视图控制器推到它上面来添加你的内容。它是使用.xib文件创建的推送视图控制器。
答案 1 :(得分:-1)
导航控制器中的每个UIViewController都负责提供要在导航栏上显示的内容。
在您的视图中,FirstView的didLoad方法执行以下操作
self.navigationItem.title = @"your title";
但是你也可以发布你的FirstView在IB中的样子吗?
我个人从未在IB中设置导航栏。 在这里,您可以在导航栏的代码中设置2按钮
self.navigationItem.leftBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject)];
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];
此代码来自UITableViewController子类。