2010-07-14 61 views
1

我试图用一些分层视图实现导航控制器。我想使用一个普通的UIViewController来展示挖掘的选择,我不想使用导航栏 - 我想有我自己的自定义按钮来返回一个关卡。如何在不使用导航条的情况下将控制器关闭导航堆栈

我看到这样的例子:

[[self navigationController] pushViewController:nextViewController animated:YES]; 

,我的问题是:是navigationController所有UIViewControllers的财产?无论堆叠视图如何,我可以参考self.navigationController吗?如果我处于任意视图,是否可以执行包含如下操作的按钮操作:[self.navigationController popToRootViewController animated:YES];

我呈现的每个视图都需要一个按钮来返回到上一个视图或根视图,这取决于具体情况。我想在每个视图控制器中创建该按钮,并控制它返回到的堆栈中的哪个视图。我在正确的轨道上吗?

回答

7

navigationController是所有UIViewControllers的属性吗?

是的。

无论堆栈上的视图是否可以引用self.navigationController?

UIViewControllerUINavigationController的堆栈上呼吁它navigationController时将返回UINavigationController对象。

如果我在任意视图,可我有一个包含类似[self.navigationController popToRootViewControllerAnimated:YES];

是一个按钮动作。 popToRootViewControllerAnimated:将使用户转到UINavigationController的根UIViewController,并且您可以使用[self.navigationController popViewControllerAnimated:YES];弹出顶部UIViewController。最后一个与点击BackUIBarButtonItem相同。

我在正确的轨道上吗?

是:)

+0

谢谢!我仍然处在学习曲线的陡峭部分,但每一步都是非常有益的。几个月前看这个导航控制器的东西对我来说完全是胡言乱语,现在看起来(相当)清晰。没有堆栈溢出我早就放弃了。很好,明确的答案! – Steve 2010-07-14 19:09:03

+0

信不信由你,但仅仅在4个月前,我并不了解C,Objective-C,Cocoa Touch或iPhone应用程序开发的第一件事情:)如果你真的设定了自己的学习方式(阅读一些书籍,自己从头开始构建一个应用程序),然后才知道自己在Stack Overflow上回答其他人的问题;) – 2010-07-15 00:10:09

+0

我正在努力,现在开始iPhone 3开发并获取下一本游戏书。 这很好用。我可以将一个新的控制器推入堆栈并将其弹出,然后摆脱导航栏。我的两个新问题是:当我推新控制器时,我立即将模态视图做出选择 - 我如何让底层视图等待模态出现后才可见(您可以看到它滑入模式向左滑动)。然后,如何从模态中将选择信息返回到底层控制器? – Steve 2010-07-15 19:32:22

相关问题