UIVIewController自定义init方法

Luc*_*uca 3 iphone objective-c uiviewcontroller

我想为我的UIViewController子类实现一个自定义初始化方法来"替换"initWithNibName方法.

这是代码:

- (id) initWithMessage:(NSString *)message {
    if ((self = [super initWithNibName:@"ToolTip" bundle:nil])) {
        label.text = message;
    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

标签是从xib加载的,但此时对标签的引用是nil(可能是因为xib尚未加载?).有谁知道解决方案吗?谢谢

Bri*_*ian 12

我知道这是一个老问题,但正确的答案是在viewDidLoad加载视图后使用该方法进行任何其他设置.视图在需要之前不会加载,并且可以在收到内存警告时卸载.因此,不应在init方法中触及视图控制器的视图.