2011-12-18 15 views
1

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

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

は私BaseViewController.xibです: enter image description here

TestViewController.xib:親 enter image description here

TestViewController.hのために "contentView" コンセントをつなぐ: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; 
} 

もちろん、私は白い景色のMainViewControllerから緑色のバーとTestViewControllerからラベルを持っていると思いますが、それは実際に働いていない、ここでの結果である: enter image description here

場合TestViewController.xibに、 "view"アウトレットをビューにリンクすると、実際にこの画面がオーバーライドされ、MainViewControllerの緑色のバーが表示されないので、インポートが機能していると思いますが、なぜそれがcontentViewで動作しないのかわかりません。

乾杯!

シリル

答えて

0

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

  • どちらかあなたはそれのベースビューコントローラ制御持っている - あなたはそれをサブクラス化する必要はありません。その場合には。サブビューとしてUIViewのサブクラスを追加して、そこにあるすべてのロジックを実行してください。ビューは、独自のnibファイルを持つこともできます。
  • またはベースビューコントローラをサブクラス化しますが、別のビューコントローラnibを使用することはできません。サブクラス(ビューコントローラでもあります)内のすべてのビューコントローラロジック(データソースなど)を実行できますが、ベースビューコントローラのペン先を使用します。
関連する問題