我在storyboad中有三个控制器(FirstVC、SecondVC、ThirdVC),导航是顺序的:用户可以从FirstVC导航到SecondVC,然后导航到ThirdVC.现在,我需要制作一些按钮,可以从FirstVC打开ThirdVC,但也可以将SecondVC放在导航堆栈上,所以当用户从ThirdVC按back时,他将返回SecondVC.所以,我不需要从FirstVC到SecondVC的动画,只需要将SecondVC推到导航控制器堆栈上,然后只设置到ThirdVC的动画.

我无法找到如何禁用PerformsgueWithIdentifier的动画,所以我想我应该手动从storyboard实例化SecondVC,将其放在导航堆栈上,然后为ThirdVC执行PerformsgueWithIdentifier.有什么办法吗?

推荐答案

如果你在firstVC,你要寻找的解决方案是:

NSMutableArray *controllers = [self.navigationController.viewControllers mutableCopy];
[controllers addObject:secondVc];
[controllers addObject:thirdVC];
[self.navigationController setViewControllers:controllers animated:YES];

这将在第三个VC中设置动画,而第二个VC在过程中不可见.当用户按下后退按钮时,他们将返回第二个VC

Objective-c相关问答推荐

让 NSRunLoop 等待设置标志的最佳方法?

当前时间是 HH:MM:SS am/pm 格式吗?

xcode 未知类型名称

从 Storyboard 实例化视图控制器与创建新实例

Facebook 添加测试用户和管理员是:(待定),这是什么意思?

如何从 Xcode4 生成 UML 图

如何以编程方式退出 mac 应用程序?

如何从 AVPlayer(不是 AVAudioPlayer)获取持续时间?

设置数据后调整 UICollectionView 单元格的大小

使用 DatePicker 展开和折叠 UITableViewCells

委托如何在 Objective-C 中工作?

如果目录不存在,是否有更安全的方法来创建目录?

如何制作真正的私有实例变量?

如何以编程方式在 UINavigationController 中按下返回按钮

笔尖中的原型单元而不是故事板

通过情节提要加载时如何初始化视图?

更改导航栏的字体

在 iOS 6.0 的 Xcode 4.5 中我没有要求的日志(log)消息

如何在 Objective-c 中将数组声明为常量?

如何在对象内使用 objc_setAssociatedObject/objc_getAssociatedObject?