为啥我的 UIViewController 初始化程序从未被调用?
Posted
技术标签:
【中文标题】为啥我的 UIViewController 初始化程序从未被调用?【英文标题】:Why is my UIViewController initializer never called?为什么我的 UIViewController 初始化程序从未被调用? 【发布时间】:2010-04-12 13:46:00 【问题描述】:我从一个新模板创建了一个基于视图的项目。有一个使用 XIB 创建的 UIViewController。
在实现中,我取消了注释并添加了一个 NSLog。但这从未被调用:
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]))
// Custom initialization
NSLog(@"nib");
return self;
因为它是从 nib / xib 初始化的,所以应该肯定会调用它,对吗?但是,事实并非如此。当我将它放入 viewDidLoad 时,我确实收到了一条 NSLog 消息。
【问题讨论】:
初始化视图控制器的代码在哪里? 【参考方案1】:从 nib/xib 初始化对象时,-initWithCoder:
method 将用于初始化。
-initWithNibName:…
从不用于取消归档。
【讨论】:
以上是关于为啥我的 UIViewController 初始化程序从未被调用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UIViewController 不在其视图的响应者链中?
为啥我的 UIViewController 失去了对打开模式 ViewController 的引用?
我的 UIImageView 中的约束有啥问题,为啥我无法在 UIViewController 上拉伸图像?
为啥来自 customTableViewCell 的 UiTextField 没有在我的 UiViewController 中使用 UITableView 返回字符串