我在iOS开发中处于一种奇怪的状态,也有点新手。为了清楚起见,使用ViewController(vA)的字母表和NavigationController(n1)的数字。假设我有一个嵌入在导航控制器“1”中的ViewController“A”。下面我试图显示导航。
VB-> n1 - > vA型
VB-> n2 - > vC - > vD - > vA型
我在vB
上有一个条形按钮项,将我重定向到vA
。由于一些要求,我使用现在的模态segue从vB
转到'vA'所以vA
上没有任何后退按钮,而对于第二个条件我得到了默认后退按钮,因为{ {1}}。在第一个条件中,为了导航回来,我添加了一个条形按钮项目并关闭按钮动作的视图,如下所示。
push segue
它适用于第一个条件,但导航到第二个条件,当[self dismissViewControllerAnimated:YES completion:^{ NSLog(@"controller dismissed"); }];
时,我得到了我的自定义后退按钮而不是默认后退按钮,这很明显,通过点击它我得到{{ 1}}而我的要求是vA
。那么如何才能这样做,如果redirected to vB
隐藏自定义后退栏按钮。我正在考虑的解决方案是获取以前的ViewController,并基于该创建自定义按钮。但我不确定,这是一种正确的方法。如果还有其他简单方法可以指导我。
go back on vD
答案 0 :(得分:0)
两个想法 - 首先,你可以继承vA。 vASubclass创建其自定义后退按钮并调用-dismissViewController。 (超级)vA是你在堆栈上推的东西。
OR,在vB的-prepareForSegue中,检查segue标识符,如果modal将自定义按钮添加到vA,并设置target-action从vB内调用-dismissViewController。