自动向下钻取导航层次结构?

时间:2010-11-29 02:08:24

标签: ios iphone navigation hierarchy

我有一个基于导航的应用程序,允许用户深入了解层次结构。一些子层次结构中只有一个元素,例如

TopLevel1----->Level2a
TopLevel2   |->Level2b----->Level3a----->Level4a
            |->Level2c    

我不想让用户点击“Level3a”,而只是想从Level2b跳到Level4a,但是将Level3a视图保留在堆栈中,这样当用户回溯时,它就可见了。

我在这里找到了一些代码来模拟行点击:

Simulate a Detail Disclosure Button press

加载每个级别时,我会检查其中是否只有一个元素。如果是这样,我模拟行敲击。这一切都在最初工作,并加载最终视图。但是当我开始回溯视图层次结构时,我遇到了问题(看起来没有加载跳过的视图)。

我认为我想要完成的事情相当简单,所以我希望有人能指出我正确的方向。

2 个答案:

答案 0 :(得分:0)

您应该可以在{3}视图控制器的[self.navigationController pushViewController:level4 animated:NO]方法中进行viewWillAppear调用。这将自动将level4推到level3之上。

如果它只在某些时候发生,则level3可以有一个属性来指示何时发生此行为。

答案 1 :(得分:0)

我不是百分百肯定会有用,但这就是我要做的。

您可以直接[self.navigationController pushViewController:level4a animated:NO]完成后,设置一个新的viewControllers数组,navigationController适当的数组(包含Level3a的数组)。

以下是您didSelectRowAtIndexPath:

中的代码示例
[self.navigationController pushViewController:level4a animated:NO]; //Push the level 4 first
NSMutableArray* mutableViewControllers = [self.navigationController.viewControllers mutableCopy];
[mutableViewController addObject:level3a atIndex:3]; //Add the level 3 manually
self.navigationController.viewControllers = mutableViewControllers;
[mutableViewControllers release];