0

有什么方法可以知道自定义对象何时完成从对象文件内部初始化?或者让我换个说法,为什么我不能在这个方法中调用任何方法?

- (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;
}

编辑:

-(void)viewDidLoad{



    NSLog(@"viewDidLoad inside CustomObject(subclass of UIView) is called"); //It never gets called
    [self viewDidLoad];
    //initialization here...


}
4

2 回答 2

1

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

- (void)viewDidLoad {
    [super viewDidLoad];

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

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

于 2013-01-14T14:05:12.477 回答
0

代替您进行编辑,您可以简单地将调用移至 UIViewController:

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

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

于 2013-01-14T14:15:37.683 回答