Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 控制segue destination Back按钮导航栏_Objective C_Ios - Fatal编程技术网

Objective c 控制segue destination Back按钮导航栏

Objective c 控制segue destination Back按钮导航栏,objective-c,ios,Objective C,Ios,我在导航栏中嵌入了4个视图: VC1->VC2->VC3->VC4 我需要从VC3的后退按钮切换到VC1而不是VC2。我已尝试实现此选项,但未成功。可能吗 非常感谢如果您想让后退按钮保持正常外观,则无法更改后退按钮的行为,但如果您无法更好地组织应用程序,则可以求助于脏补丁(我不熟悉更好的方法)。它包括直接编辑导航堆栈,并从中删除不需要的视图控制器 这不是一种推荐的处理方法,但它可以完成以下任务: NSMutableArray *myNavigationStack = [NSMutableArra

我在导航栏中嵌入了4个视图:

VC1->VC2->VC3->VC4

我需要从VC3的后退按钮切换到VC1而不是VC2。我已尝试实现此选项,但未成功。可能吗


非常感谢

如果您想让后退按钮保持正常外观,则无法更改后退按钮的行为,但如果您无法更好地组织应用程序,则可以求助于脏补丁(我不熟悉更好的方法)。它包括直接编辑导航堆栈,并从中删除不需要的视图控制器

这不是一种推荐的处理方法,但它可以完成以下任务:

NSMutableArray *myNavigationStack = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[myNAvigationStack removeObjectAtIndex:<yourViewControllerExtraIndex>];
self.navigationController.viewControllers = navigationStack;
NSMutableArray*myNavigationStack=[NSMutableArray数组WithArray:self.navigationController.ViewController];
[myNAvigationStack removeObjectAtIndex:];
self.navigationController.ViewController=navigationStack;
确保获得正确的索引(0是您的rootViewController),并正确处理内存


解决这一问题的最佳方法可能是设计应用程序的体系结构,以完全避免此类行为。

为什么不从VC3向VC1添加一个序列?因为我需要执行此序列,但我需要VC3返回按钮返回VC1