をロードされていることは、initを介して間接的にinitWithNibName:
を呼び出すために良いとは限りません。ある時点でinitWithNibName:
に電話するだけです。あなたはそれを外部的または内部的に行うことができます。内部的に行う方が良いと考える人もいます。実際にレイアウト関連のコードを何度も書くのを避けるために、レイアウト関連のヘルパーメソッドを保持する「LayoutUtil」というクラスがあります。ここでのUIViewControllerをロードするための私のコードは次のとおりです。
+ (id)loadController:(Class)classType {
NSString *className = NSStringFromClass(classType);
UIViewController *controller = [[classType alloc] initWithNibName:className bundle:nil];
return controller;
}
そして私はちょうど行うことができます。
MyViewController *c = [LayoutUtil loadController:[MyViewController class]];
したい場合は、あなたがクラスにughhhhというメソッドを追加し、そこにそれを呼び出すことができ、それは全く問題ではありません。要点は、initメソッドでinitWithNibNameを呼び出す方が良い習慣ではないということですが、UIViewControllerを開始するときに、ある時点で呼び出すようにしたいだけです。
- (id)ughhhh
{
self = [super initWithNibName:@"Myview" bundle:nil];
if (self != nil)
{
}
return self;
}
nibファイルを複数回読み込む必要があります。 UIViewControllerでinitWithNibNameを呼び出すたびにxibをロードする必要があります。あなたはペン先をロードします。この関数を呼び出す
[[NSBundle mainBundle] loadNibNamed:@"nameOfXIBFile" owner:self options:nil];
毎回:多くの人々は、このようのUIViewControllerが所有していないUIViewsをロードします。
ペン先がキャッシュされる場合があります。例としてはUITableViewがありますが、テーブルビューには独自のキャッシュが実装されています。オペレーティングシステムは自動的にキャッシングを行っていません。
init
とinitWithNibName:
は、initWithNibName:
が自動的にオブジェクトに対してinitを呼び出します。
+1、非常によく詳細...あなたの詳細な回答と種類の支援のための – doNotCheckMyBlog
おかげで... – Stanley
ジャストノート:自己に割り当てる、あなたが必要とします'init'で始まるメソッドを持っています。だから - (id)initUghhhh' – benaneesh