以编程方式更改选项卡(iOS)

时间:2014-03-27 22:09:31

标签: ios uiviewcontroller uitabbarcontroller children

我知道当我当前使用标签控制器提供的其中一个视图时,如何在标签之间进行更改:

self.tabBarController.selectedIndex=1;

但是现在我需要在模态子视图上更改标签之间,我需要取消模态视图并显示另一个标签,

2 个答案:

答案 0 :(得分:2)

最佳/适当的模式是让模态子项在退出时将任务交给其委托。定义你自己的简单“myChildViewDelegate”协议(可能是一个单一的方法,甚至),并给模态子项一个“委托”属性,如下所示:

id<myChildViewDelegate> delegate;

当用户按下模式视图上的按钮或其他任何内容时,它会调用其委托上的方法,并且委托会取消模态视图并更改标签。

答案 1 :(得分:1)

假设您在呈现的视图控制器上有某种按钮,只需将按钮设置为呈现视图中的功能。

-(void) someFunction {
    ... Code that creates the modal view controller and buttons

    [modalViewController.changeTabButton addTarget: self action:@selector(changeTab:) forControlEvents:UIControlEventTouchUpInside];

    [self presentViewController:modalViewController animated:YES completion:nil];
}

-(void) changeTab:(id)sender {
    self.tabBarController.selectedIndex=1;
}