首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >initWithNibName没有被调用

initWithNibName没有被调用
EN

Stack Overflow用户
提问于 2010-09-07 23:18:26
回答 2查看 5.6K关注 0票数 7

我需要在我的iPhone应用程序中添加一些自定义逻辑,以便根据您正在运行的iOS版本,选择不同的XIB文件(即iPhone或iPad将显示不同的XIB文件)。

我从第一天开始就构建了整个iPhone应用程序,它很好,在每个选项卡中都使用了一个选项卡和标准导航控制器。

因此,我实现了:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

方法,只会发现它没有被调用。(我在其中有一个断点和日志语句,没有任何东西被击中)。

有人知道为什么会这样吗?如何实现这个功能?

我在某个地方读到过,只有在调用initWithNibName时才调用它,也就是说,当您以编程方式构造视图层次结构时,这是真的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-07 23:25:24

如果在将其添加到导航控制器之前没有这样做:

代码语言:javascript
复制
SomeViewController *someViewController = [[SomeViewController alloc] initWithNibName:...];

那就很有可能你超越了错误的方法。

如果您的视图控制器位于一个nib文件中,比如您的导航控制器的nib文件,它将作为一个新的视图控制器对象从nib文件中解除存档,而不是使用它自己的nib文件创建,因此不会调用上面的方法。

您将不得不重写-awakeFromNib

票数 7
EN

Stack Overflow用户

发布于 2010-09-07 23:27:19

如果您的视图控制器是从.xib文件加载的,那么将调用initWithCoder:initWithNibName:bundle:方法仅用于以编程方式创建视图控制器。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3663430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档