2011-02-02 15 views
0

すべてのコントローラをコードとGUIのほとんどで作成します。いくつかのGUIは私がIBで作っています。次に、ファイルの所有者をviewcontrollerに設定し、ファイルの所有者からビューに接続をドラッグします。しかしinitWithNibNameが...私はinitWithNibNameに関する質問

この

に指定イニシャライザを上書き
- (id)init { 
    [super initWithNibName:nil bundle:nil]; 

    return self; 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    return [self init]; 
} 

私を混乱させるなぜ私はViewControllerをはINIT-initalizerに使用しなければならないNIBどの設定する必要はありませんか?それがなくても働くからです。私は[super initWithNibName:@ "SomeNib​​" bundle:nil]を使わなければならないと思った。 INIT-initalizerで

+0

だから、何が問題なのですか?あなたの情報を再編成する必要があると思います。 –

+1

明らかに、2人の人がすでに私の質問を理解し、それを美しく答えて以来、 – LuckyLuke

答えて

2

あなたのペン先の名前は、あなたのコントローラクラス名と同じである場合にのみなしで動作します。その場合、アップルはいくつかの魔法をします。ペン先名を指定するのが一般に良い形式です。

+0

ああ、そういうわけで...それは理にかなっている。私は魔法がどこから来たのか分からなかった。 – LuckyLuke

3

nibNameパラメータにnilを指定する場合は、loadViewメソッドをオーバーライドしてそこにビューを作成するか、名前に(拡張子が.nibではない)nibファイルを指定する必要がありますあなたのビューコントローラクラスの。 (後者の場合、クラス名はnibNameプロパティに格納された名前になります)。これらのどれも実行しないと、View Controllerはビューをロードできなくなります。