NavViewController内でUIViewControllerをプログラムで設定したいが、loadViewやviewDidLoadメソッドが呼び出される。 loadViewメソッドへ UIViewControllerのloadViewが呼び出されていない
MyViewController *viewController = [[MyViewController alloc] init];
UIView *view = [[UIView alloc] initWithFrame:window.frame];
viewController.view = view;
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
私はnavigationbarを参照してくださいアプリを起動
、ないの呼び出し:これはアプリのデリゲートの私のコードです。私は何が欠けていますか? は、私はあなたが編集ヨナさんのコメントの方に編集した
MyViewController *viewController = [[MyViewController alloc] init];
[viewController view]; // doesn't look right?
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
view
呼び出した後loadViewメソッドが呼び出されると思ったが、loadViewメソッドがまだ呼び出されません。
2番目の発言について、ビューを割り当てると、2番目と3番目のコード行を意味します。それは理にかなっている。しかし、私はこの場合ゲッタをどのように呼びますか? –
'[viewController view]'はビューのゲッターを起動しますが、直接行う必要はありません。あなたのビューコントローラを追加した 'UINavigationController'は、コントローラのビューをビュー階層に追加するためにある時点でそのゲッターを呼び出します。 View Controllerの実装を共有できますか?あなたは何か他のことが起こっているように思えます。 – Jonah
基本的には、Xcodeの空のUIViewControllerテンプレートですが、init以外には(view)メソッドが呼び出されません。そこに私はこのようなビューをセットアップしようとしました: - (id)init { \t self((self = [super init])){ \t UIView *ビュー= [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds] ]; \t self.view = view; \t [リリースを見る]; \t} return self; } –