1

単純なビューを現在のビューにプッシュしようとしていますが、機能していないようです。

私のアプリデリゲートでは、次のことを行いました。

self.window.backgroundColor = [UIColor whiteColor];
__firstVC = [[FirstPageViewController alloc]initWithNibName:nil bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:__firstVC];
[self.window addSubview:[navController view]];
[self.window makeKeyAndVisible]; Return YES;

そして、私の最初のビューコントローラで:

SecondPageViewController *secondView = [[SecondPageViewController alloc] init];
    [secondView setTitle:@"What do you want?"];
    [self.navigationController pushViewController:secondView animated:YES];

しかし、何も起こらないようです。secondviewcontrollerのinitにnslogステートメントを入れましたが、それは表示されますが、表示されません。誰かが助けることができますか?

4

1 に答える 1

1

ナビゲーションコントローラーには所有者がいません。アプリデリゲートのdidFinishLaunchingWithOptionsメソッドの最後に到達すると、ナビゲーションコントローラーの割り当てが解除されます。ビューをウィンドウに追加する代わりに、ルートビューコントローラーとして設定します。

self.window.rootViewController = navController;

編集:ARCを使用しているかどうかによっては、上記の説明が当てはまらない場合があると思います。ARCがないと、navコントローラーがリークするだけで、アプリの存続期間中ずっと使用するので、おそらく問題ありません。

于 2012-06-07T23:15:45.417 に答える