在UINavigationController中切换UIViewControllers

时间:2012-10-07 20:42:51

标签: iphone ios xcode

所以我遇到了一个似乎很简单的问题,但却让我感到很适合。

基本上,我已经设置了这样的东西:

(1) - >(2) - >(3)

我钻进一张桌子,一旦我在(3),我希望能够在两个不同的视图之间滑动,同时保持层次结构不变。像这样:

(1) - >(2) - >(3a)/(3b)其中3a和3b能够来回滑动。我还想在两个视图上保留(2)的后箭头,以便用户可以返回。

我遇到的问题是3a和3b需要对JSON数据进行单独调用,因此它不仅仅是加载两个图像。我真的需要完全加载每个......

知道从哪里开始?我很有经验,但这似乎完全令人困惑。而我现在正在使用故事板。非常感谢您的帮助!

我推动新观点的通常方式就像我在下面所做的那样。在这种情况下,这显然不起作用......

if (!self.objTomorrowDetailViewController) { self.objTomorrowDetailViewController = [[TomorrowDetailViewController alloc] initWithNibName:@"TomorrowDetailViewController" bundle:nil]; } 
[self.navigationController pushViewController:self.objTomorrowDetailViewController animated:YES];

2 个答案:

答案 0 :(得分:0)

使用navigationController.viewControllers获取当前视图堆栈,根据它创建一个新视图堆栈(通过可变或新语法@[oldVCs[0],oldVCs[1],newVC])。将其设置为[navigationController setViewControllers:newVCArray animated:YES]的新堆栈。

答案 1 :(得分:0)

我认为最好的方法是使用自定义容器控制器作为控制器3.当您从2进行推送时,它会加载自定义容器,您可以将其设置为显示两个中的一个(或更多,如果你想要的)它的子控制器。滑动手势将在容器控制器的2个子控制器之间切换,您仍然可以从任一视图返回到2。