Objective-C在对象文件中初始化self后如何调用方法?

Objective-C在对象文件中初始化self后如何调用方法?,objective-c,methods,self,Objective C,Methods,Self,有没有办法知道自定义对象何时完成从对象文件内部初始化的过程?或者让我重新表述这个问题,为什么我不能调用这个方法中的任何方法 - (id)initWithCoder:(NSCoder *)coder { //NSLog(@"initWithCoder inside CustomObject (subclass of UIView)"); self = [super initWithCoder:coder]; if (self) { //... initial

有没有办法知道自定义对象何时完成从对象文件内部初始化的过程?或者让我重新表述这个问题,为什么我不能调用这个方法中的任何方法

- (id)initWithCoder:(NSCoder *)coder {
    //NSLog(@"initWithCoder inside CustomObject (subclass of UIView)");
    self = [super initWithCoder:coder];
    if (self) {
        //... initialization here


        [self visibleEmptyButton]; //why does this method never get called?


    }
    return self;
}
编辑:

(如果您正在初始化的类是UIViewController的子类),则应在加载视图后更改和设置屏幕中的内容。尝试使用以下方法执行此操作:

- (void)viewDidLoad {
    [super viewDidLoad];

    [self visibleEmptyButton];
    //Do the additional view altering here
}

如果此方法尚不存在,您只需将其添加到.m文件(无需将其添加到.h文件)。

您只需将调用移动到UIViewController即可代替编辑:

- (void)viewDidLoad {
    [super viewDidLoad];
    [TheInstanceOfYourViewClass visibleEmptyButton];
}

此外,为了避免将一大堆与子视图相关的小方法公开,创建一个方法来处理初始视觉状态通常是有意义的。

我猜您是从故事板/xib启动视图的。如果是这样,按钮可能还不存在。尝试将方法调用移到viewDidLoad…请参阅@nick,这是正确的,我正在使用xib初始化此视图。我也尝试过,但该方法从未被调用……你能告诉我如何/在哪里初始化该类吗?@nick请查看我的编辑……在这种情况下,你可以创建一个UIViewController实例,并使其成为你UIView的所有者。然后,该控制器将获得上述调用。
- (void)viewDidLoad {
    [super viewDidLoad];
    [TheInstanceOfYourViewClass visibleEmptyButton];
}