メインビューコントローラをアウトレットでサブクラス化する

カスタムナビゲーションバーとその動作を処理するためにメインビューコントローラを作成したいと思います。

次に、この新しいクラスをサブクラス化して、その動作を使用し、それぞれのViewControllerの "contentView" IBOutletをリンクしたいと思います。

Here is my BaseViewController.xib: enter image description here

TestViewController.xib: linking the "contentView" outlet for its parent enter image description here

TestViewController.h:BaseViewControllerから継承する

#import "BaseViewController.h"

@interface TestViewController : BaseViewController

@end

TestViewController.m:TestViewController.xibのアウトレットを使用する必要があります

- (id)init
{
    self = [super init];
    if (self) {
        [[NSBundle mainBundle] loadNibNamed:@"TestViewController"
                                      owner:self
                                    options:nil];
    }

    return self;
}

Obviously, I would like to have the green bar from MainViewController with the white view and the label from TestViewController, but it's actually not working, here is the result: enter image description here

TestViewController.xibでビューとアウトレットをリンクすると、実際にこの画面がオーバーライドされ、MainViewControllerの緑色のバーが表示されないので、インポートが機能していると推測されますが、理由を理解できませんそれはcontentViewで動作していません。

何か案が ?

乾杯!

シリル

1

1 答え

コンテンツでビューを制御するコントローラを決定する必要があります。

  • Either you have the base view controller control it - in which case you do not need to subclass it. Just add a subclass of UIView as a subview and do all the logic there. The view can also have its own nib file.
  • Or you subclass your base view controller - but then you cannot have a separate view controller nib. You can do all the view controller logic (data sources etc) in the subclass (which is also a view controller), but it will use the nib of the base view controller.
0
追加された