如何在一个链中从一个视图控制器切换到另一个视图控制器
问题描述:
我有一个初始视图控制器,从中我需要推送到第一个视图控制器。在后面单击第一个视图控制器,而不是回到初始视图控制器,我需要去第三个视图控制器。从后面单击第三个视图控制器它应该回到初始视图控制器。任何人都可以建议我如何在ios6和ios7中做到这一点。如何在一个链中从一个视图控制器切换到另一个视图控制器
答
按下后,调用setViewControllers:animated:
,将中间视图控制器插入堆栈。
答
还有很多其他的方式做,但我更喜欢这一个:
的,你必须以编程方式添加导航栏按钮为“回”的第一个视图控制器(你的情况),但在这种情况下,你需要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
}
可能会帮助你。
http://www.apeth.com/iOSBook/ch19.html#_configuring_a_navigation_controller – matt
setviewcontrollers:如果我没有错,动画方法会在iOS 7中崩溃.. –
你错了。当然,如果你把它称为错误的话,你可能会崩溃。 https://developer.apple.com/library/ios/Documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#jumpTo_21 – matt