如何使用 uinavigationcontroller

Posted

技术标签:

【中文标题】如何使用 uinavigationcontroller【英文标题】:How to use uinavigationcontroller 【发布时间】:2013-05-27 21:47:40 【问题描述】:

我有 3 个视图控制器,第二个被添加到第一个使用 viewcontroller1.m

[self presentModalViewController:vc2 animated:YES];    
vc2.view.superview.frame = CGRectMake(50, 740, 695, 245);

现在我想从第二个视图控制器导航到第三个视图控制器,我在 viewcontroller2.m 中使用过:

[self.navigationController pushViewController:vc3 animated:YES]; 

但是没有用。这就是我想做的:viewcontroller1-->viewcontroller2(导航并将对象传递给viewcontroller3)-->viewcontroller3

【问题讨论】:

你为什么使用 presentModalViewController: ? 我的第二个视图控制器应该是一个模态视图,我将它添加到我的第一个视图控制器中 您想为将在模态视图中显示的视图使用导航控制器吗? 我想关闭模态视图,然后导航到我的第三个视图控制器 【参考方案1】:

默认情况下,视图控制器通常不带 UINavigationController。当您呈现模态视图控制器时,您将失去该源的导航控制器。您可以创建一个新的导航控制器,将其与 vc2 关联,并以模态方式呈现该模态视图控制器。类似:

UINavigationController *controller=[[UINavigationController alloc] initWithRootViewController:vc2];
[self presentModalViewController:controller animated:YES];

【讨论】:

当我将 sosond 视图添加到第一个视图时,这应该添加到我的 viewcontroller1.m 中吗?

以上是关于如何使用 uinavigationcontroller的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UINavigationController 堆栈中使用 didReceiveMemoryWarning

iOS:如何在现有 UINavigationController 中打开另一个 UINavigationController?

如何使用 uinavigationcontroller

如何使用当前视图信息自定义 UINavigationController 的顶部栏?

如何在 UINavigationController 中使用协议和委托

使用后如何在堆栈中删除 UINavigationController 的第一个视图?