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