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

In lieu of you're edit you could simply move the call to the UIViewController:

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

Also, to avoid making a whole bunch of small subview related methods public it often makes sense to create one method to handle the initial visual states.

于 2013-01-14T14:15:37.683 に答える