UINavigationController作为ModalView

时间:2012-05-03 17:34:32

标签: objective-c xcode uinavigationcontroller modalviewcontroller

我的应用程序类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中的另一个屏幕上打开它。

告诉我如何达到这个效果。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

将此与InfoScreen控制器一起使用,并且不要继承UINavigationController ......

UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:InfoScreen];
[navController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:InfoScreen animated:YES];