私は忍耐強く、私はまだココアタッチを学んでいます。他の-viewDidLoadという質問は私の問題とは無関係でしたが、私は検索を行いました。-viewDidLoadはサブクラス化されたUIViewControllerで呼び出されません
FooViewController
、UIViewController
サブクラスです。 FooViewController.xibのFile's OwnerはFooViewControllerに設定されています。さらに、私はMain
を持っており、そのアプリケーション代理人はMyApplication
であり、ファイル所有者はUIApplication
です。私の主なペン先はメインに設定されています。
UIWindow *main;
-(void)applicationDidFinishLaunching:(UIApplication*)application {
[self showFooViewController];
[main makeKeyAndVisible];
}
-(void)showFooViewController {
fooViewController = [[FooViewController alloc] init];
if(![[NSBundle mainBundle] loadNibNamed:@"FooViewController" owner:fooViewController options:nil]) {
DebugF(@"Failed to load FooViewController");
return;
}
// Add the view and put it in place
UIView *view = [fooViewController view];
CGRect cur = [view frame];
cur.origin = CGPointMake(0.0f, 20.0f);
[view setFrame:cur];
[main addSubview:[fooViewController view]];
}
しかし、このメッセージはFooViewController
に送信されていない:
- (void) viewDidLoad {
DebugF(@"Hello!");
}
私はビューを作ることができる午前
は(簡潔にするために切り取らコード)このフローを使用して、画面に表示されます
gdbの出力における無音の合計。
私は、IBのドキュメントビューでインスタンスなどを表示する他のCocoaチュートリアルを見てきましたが、これらのオプションは私の中には表示されません。 NibでfooViewControllerをインスタンス化するはずですか?私は接続が欠けていましたか? FooViewController.xibでは、FileのOwnerビューはNibのビューに接続されています。
私はこれが簡単な解決策であると確信しています。私は間違った経路をさまよっています。ハーフ!
ドキュメントによると、 "このメソッド[loadView]を直接呼び出すべきではありません"。 –
ありがとう、ピーター - 私はあなたが参照しているものを参照してください。誰かが元のソース(Appleから)を読んでみたい場合は、こちらをご覧ください: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#// apple_ref/occ/instm/UIViewController/loadView – Tyler
私はまさに同じ問題を抱えていました(直接 'loadView'を呼びます)。 –