将视图控制器推送到选项卡控制器中的视图控件

时间:2014-01-05 19:32:03

标签: ios cocoa-touch

所以我有一个标签栏控制器,它包含一个搜索视图和一个配置文件视图。当我点击搜索视图中的一个单元格时,我想转到另一个视图控制器,底部仍然有我的标签,并保持用户单击后退按钮返回主视图的能力。

我已经实现了后退按钮部分,但我还没有实现维护标签部分。

这就是我尝试过的 -

-(void)displayCardController{

if(self.userProfile == nil){
    [self.tabBarController setViewControllers:@[self.searchViewController, self.loginViewController]];
    [self.searchViewController.navigationController pushViewController:self.searchViewController.detailController animated:YES];
} else {
        [self.tabBarController setViewControllers:@[self.searchViewController, self.profileViewController]];
        [self.searchViewController.navigationController pushViewController:self.searchViewController.detailController animated:YES];
    }

}

这个想法是 - 将选项卡设置为拥有我的控制器,然后推送我想要的顶部。这不起作用。

我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

看起来问题是你的第一个标签控制器子项self.searchViewController导航控制器。如果您希望能够在仍然停留在选项卡控制器内的情况下推入此控制器,则需要搜索视图控制器(或任何第一个选项卡控制器子项) 导航控制器。

请注意,它的导航栏可以隐藏,因此它不会像导航控制器一样看起来,但是当你按下时,你可以显示导航栏,这样就可以让用户清楚地看到回来。

或者,使用不同的界面。我所做的,例如,当我有两个标签,其中一个需要暂时更改,在iPhone上,使用呈现的视图控制器:而不是push / pop,我使用present /解雇。在iPhone上,这会隐藏标签栏,但是当我们完成时我们会返回到相同的位置,因此界面清晰。 (在iPad上,标签栏控制器内的显示视图不必隐藏标签栏。)