如何在一个链中从一个视图控制器切换到另一个视图控制器

问题描述:

我有一个初始视图控制器,从中我需要推送到第一个视图控制器。在后面单击第一个视图控制器,而不是回到初始视图控制器,我需要去第三个视图控制器。从后面单击第三个视图控制器它应该回到初始视图控制器。任何人都可以建议我如何在ios6和ios7中做到这一点。如何在一个链中从一个视图控制器切换到另一个视图控制器

按下后,调用setViewControllers:animated:,将中间视图控制器插入堆栈。

+0

http://www.apeth.com/iOSBook/ch19.html#_configuring_a_navigation_controller – matt

+0

setviewcontrollers:如果我没有错,动画方法会在iOS 7中崩溃.. –

+0

你错了。当然,如果你把它称为错误的话,你可能会崩溃。 https://developer.apple.com/library/ios/Documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#jumpTo_21 – matt

还有很多其他的方式做,但我更喜欢这一个:

的,你必须以编程方式添加导航栏按钮为“回”的第一个视图控制器(你的情况),但在这种情况下,你需要back_arrow image:

UIImage *faceImage = [UIImage imageNamed:@"back_arrow.png"]; 
UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom]; 
face.bounds = CGRectMake(10, 0, faceImage.size.width, faceImage.size.height); 
[face addTarget:self action:@selector(handleBack) forControlEvents:UIControlEventTouchUpInside]; 
[face setImage:faceImage forState:UIControlStateNormal]; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:face]; 
self.navigationItem.leftBarButtonItem = backButton; 
[self.navigationItem setHidesBackButton:YES animated:YES]; 
[self.navigationItem setLeftBarButtonItem:nil animated:NO]; 
[self.navigationItem setBackBarButtonItem:nil]; 

-(void)handleBack 
{ 
    //got third view controller here 
} 

可能会帮助你。