我需要将一些自定义逻辑放入我的 iPhone 应用程序中,以便根据您运行的 iOS 版本,选择不同的 XIB 文件(即 iPhone 或 iPad 将显示不同的 XIB 文件)。
我从第一天起就构建了整个 iPhone 应用程序,一切都很好,在每个选项卡中使用了选项卡控制器和标准导航控制器。
所以我实施了:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
方法,却发现没有被调用。 (我有一个断点和日志语句,但没有任何命中)。
有谁知道为什么会这样?OR我怎样才能实现这个功能?
我在某处读到,只有在调用 initWithNibName 时才会调用它,即当您以编程方式构建视图层次结构时,这是真的吗?
如果您在将其添加到导航控制器之前没有执行类似的操作:
SomeViewController *someViewController = [[SomeViewController alloc] initWithNibName:...];
那么您很可能会覆盖错误的方法。
如果您的视图控制器位于 nib 文件中,例如导航控制器的 nib 文件,它将作为新的视图控制器对象从 nib 文件中取消归档,而不是使用自己的 nib 文件创建,因此上述方法不会叫。
你必须覆盖-awakeFromNib
反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)