UINavigationController 作为 ModalView

Posted

技术标签:

【中文标题】UINavigationController 作为 ModalView【英文标题】:UINavigationController as ModalView 【发布时间】:2012-05-03 17:34:32 【问题描述】:

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

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

【问题讨论】:

你是否继承了 uinavigationcontroller? 【参考方案1】:

根据您所说的,您在 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

【讨论】:

对不起,给出了相同的答案,没有看到你的:-|该死的,我需要更快:-) 但是 InfoScreen 已经是 UINavigationController 并且我想在那里实现子控制器的所有推送。我知道 initWithRootViewController,但这可能不是我需要的。为了在 ColorInfo.h 中更清晰,我有:@interface ColorInfo : UINavigationController @Konrad Kolasa 您仍然可以通过调用 self.navigationController 并使用该类上的各种函数从 ColorInfo 类中进行推送和弹出操作。一旦您将 InfoScreen 设置为 UINavigationController 的根视图控制器,那么您的视图控制器的 navigationController 属性将可用。您想要继承 UINavigationController 的唯一原因是为了覆盖或扩展其当前功能。【参考方案2】:

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

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

【讨论】:

与上一篇文章相同...我希望 ColorInfo 已经作为 UINavigationController

以上是关于UINavigationController 作为 ModalView的主要内容,如果未能解决你的问题,请参考以下文章

如何正确关闭作为模式呈现的 UINavigationController?

在 UINavigationController 中添加 UISegmentedControl 作为 titleView

UINavigationController 作为 iPhone 上的弹出框?

呈现 UINavigationController 几个视图深度,作为初始视图

带有 UINavigationController 作为选项卡的 UITabViewController

在以 Uinavigationcontroller 作为视图的 Popovercontroller 中更改导航栏和工具栏的色调