以编程方式创建 UINavigationController
最初,我使用 IB 将导航控制器拖到我的选项卡栏上,然后设置根控制器。但是,我正在尝试创建一个没有 IB 的导航控制器。
我所做的是创建一个将在我的选项卡栏中使用的 navcontroller 子类。导航栏确实出现了,所以我知道它正在工作。
现在,我需要将视图控制器推入层次结构中。在导航控制器的 viewDidLoad: 中,
- (void)viewDidLoad {
InfoViewController *initialController = [[InfoViewController alloc] init];
[self.navigationController pushViewController:initialController animated:YES];
[initialController release];
[super viewDidLoad];
}
我没有收到任何错误,但导航控制器中没有显示任何内容。有人知道为什么吗?
Initially I used the IB to drag a navcontroller onto my tabbar and then setting the root controller. However, I'm trying to create a nav controller without IB.
What I've done is created a navcontroller subclass that will be used in my tabbar. The nav bar does show up so I know that is working.
Now, I need to push a viewcontroller into the hierarchy. In the nav controller's viewDidLoad:
- (void)viewDidLoad {
InfoViewController *initialController = [[InfoViewController alloc] init];
[self.navigationController pushViewController:initialController animated:YES];
[initialController release];
[super viewDidLoad];
}
I get no errors, but nothing shows up in the navigation controller. Anyone know why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
InfoViewController 的 init 方法是什么样的?如果您使用 nib 来构建它,那么您需要调用 initWithNib,而不是 init。
What does your InfoViewController's init method look like? If you're using a nib to build that, then you need to call initWithNib, not init.
在创建导航控制器(并将它们添加到其中)时创建视图控制器,然后将视图控制器列表添加到选项卡栏。
Create the viewcontroller when/where you create the navigation controller (and add them to it) then add the list of view controllers to the tabbar.