1

アプリ クラス UINavigationController (NIB を使用) にあり、これを ModalView として開きたいと考えています。

私はそうします:(ColorInfoはまさにこのUINavigationControllerクラスです)

ColorInfo *InfoScreen = [[ColorInfo alloc] initWithNibName:@"ColorInfo" bundle:[NSBundle mainBundle]];
[InfoScreen setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:InfoScreen animated:YES];

空の UINavigtionController 要素が表示されます。ModalView で ColorInfo を (UINavigationController として) 開く方法を教えてください。すべての pushViewController メソッドで ColorInfo を完成させてから、ModalView の別の画面で開くことができると思いました。

この効果を得る方法を教えてください。

4

2 に答える 2

2

あなたが述べたことから、あなたが望むものではない ColorInfo で UINavigationController を継承しました。次のように、ColorInfo を UINavigationController のルート ビューにする必要があります。


ColorInfo *InfoScreen = [[ColorInfo alloc] initWithNibName:@"ColorInfo" bundle:[NSBundle mainBundle]];
UINavigationController *nav = [[UINavigationController alloc]   initWithRootViewController:InfoScreen];
[self presentModalViewController:nav animated:YES];

さらに明確にするために、ナビゲーションコントローラーのドキュメントを読むことをお勧めします。

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

于 2012-05-03T18:11:56.350 に答える
1

これを InfoScreen コントローラーで使用し、UINavigationController をサブクラス化しないでください ...

UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:InfoScreen];
[navController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:InfoScreen animated:YES];
于 2012-05-03T18:17:09.780 に答える