ios – initWithNibName没有被调用

前端之家收集整理的这篇文章主要介绍了ios – initWithNibName没有被调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在我的iPhone应用程序中添加一些自定义逻辑,以便根据您运行的iOS版本,选择不同的XIB文件(即iPhone或iPad将显示不同的XIB文件).

我从第一天开始构建了整个iPhone应用程序并且一切都很好,使用tabbarcontroller和每个选项卡中的标准导航控制器.

所以我实施了:

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

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

有谁知道为什么会这样?或者我如何实现此功能

我已经读过某个地方,只有当你调用它时才调用initWithNibName,即当你以编程方式构造视图层次结构时,这是真的吗?

解决方法

如果您在将其添加到导航控制器之前未执行此类操作,请执行以下操作:
SomeViewController *someViewController = [[SomeViewController alloc] initWithNibName:...];

那么很有可能你是在克服错误方法.

如果您的视图控制器位于nib文件中,比如导航控制器的nib文件,它将从nib文件中取消归档为新的视图控制器对象,而不是使用自己的nib文件创建,因此上述方法不会调用.

你必须改为覆盖-awakeFromNib.

原文链接:https://www.f2er.com/iOS/329877.html

猜你在找的iOS相关文章