我在UIViewController
内有一个UINavigationController
,我正在从XIB文件向导航堆栈推送第二个UIViewController
。此XIB还包含UINavigationItem
用于第二个视图控制器的标题和按钮,但在加载XIB时会忽略这些。有什么想法吗?
这是我的代码(photoViewController是第二个viewController)
- (void) displayPhotoWithId:(int)photoId {
if (_photoViewController == nil) {
self.photoViewController = [[[PhotoViewController alloc] initWithNibName:@"PhotoView" bundle:[NSBundle mainBundle]] autorelease];
}
_photoViewController.photoId = photoId;
[self.navigationController pushViewController:_photoViewController animated:YES];
}
答案 0 :(得分:3)
您可以从界面构建器中连接它。将这样的内容添加到视图控制器中:
IBOutlet UINavigationItem* navigationItem;
然后将其连接到视图控制器插座(从文件所有者,大概到XIB中的UINavigationItem
)。我做到了这一点并且工作正常。我想UINavigationController
会自动查找'navigationItem'。
答案 1 :(得分:0)
导航项被忽略,因为它与此控制器无关,它恰好位于此控制器的XIB中。控制器的导航项是在实例化时创建的。您必须在代码中设置标题和导航按钮(例如,在viewDidLoad
中),因为控制器没有navigationItem
插座。 XIB中的UINavigationItem仅在UINavigationController的根控制器内部工作。