0

ビュー コントローラーを作成し、次にナビゲーション コントローラーを作成します。

initWithRootViewController:

次に、それが を呼び出すことを観察しましたpushViewController:animated:。独自のUINavigationControllerサブクラスを使用しているため、 を上書きしpushViewController:animated:ます。

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [super pushViewController:viewController animated:animated];
    // do something with the VC
}

問題はその直後

[super pushViewController:viewController animated:animated];

これviewController.isViewLoadedはNOなので、実際にやりたいことができません。ナビゲーションコントローラーのルートVCとして使用されている場合、VCを強制的にロードする方法はありますか?

ありがとう!

編集、以下はコードです:

MyViewController *vc = [[MyViewController alloc] initWithNib:@"" bundle:nil];
MyNavController *nav = [[MyNavController alloc] initWithRootViewController:vc];

self.revealViewController.frontViewController = nav;
4

2 に答える 2

1

Appleのドキュメントでこの回答を見つけました

UINavigationController クラスは、階層コンテンツのナビゲーションを管理する特殊なビュー コントローラーを実装します。このクラスは、サブクラス化を意図していません。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

于 2012-12-10T03:46:42.073 に答える
1
Access view before pushing viewController.

[viewController view];//this will load your view
[super pushViewController:viewController animated:animated];
于 2012-12-10T04:19:46.300 に答える