2016-01-23 60 views
0

我处于一个奇怪的状况和iOS开发的一点点新手。为了清晰起见,使用ViewController(vA)的字母表和NavigationController(n1)的数字。假设我有一个嵌入导航控制器'1'的ViewController'A'。下面我试图展示导航。
VB-> N1 - > vA型
VB-> N2 - > VC - > VD - > vA型
我有vB其重定向我vA一个栏按钮项目。由于某些要求,我使用目前的模式继续从vB到'vA',因此vA上没有任何后退按钮,而对于第二种情况,由于push segue,我获得了默认后退按钮。在第一种情况下,为了导航回来,我添加了一个栏按钮项目,并关闭按钮操作上的视图,如下所示。如何创建基于前一个ViewController的导航栏后退按钮

[self dismissViewControllerAnimated:YES completion:^{ NSLog(@"controller dismissed"); }]; 

其工作罚款的首要条件,但第二个条件导航,当谈到对vA我得到了我的自定义后退按钮而不是默认的后退按钮,这是显而易见的,通过点击它,我得到了redirected to vB而我的要求是go back on vD。那么我该如何做到这一点,如果coming from vD隐藏自定义后退按钮。我正在考虑的解决方案是获取以前的ViewController,并基于该创建自定义按钮。但我不确定,这是一个正确的方法。请指导我是否有其他简单的方法来做到这一点。

- (void)viewDidLoad { 
if(viewController isEqualTo @" vB") 
{ 
//create custom back bar button 

} 

} 

回答

0

两个想法 - 首先,你可以继承vA。 vASubclass创建自定义后退按钮并调用-dismissViewController。 (super)vA就是你在栈上推送的内容。

或者,在vB的-prepareForSegue中,检查segue标识符,如果modal将自定义按钮添加到vA,并设置target-action从vB中调用-dismissViewController。

+0

使用第二种方法,下次尝试第一种方法并更新。 –

相关问题