Objective c 根据标签号选择选项卡栏项目

Objective c 根据标签号选择选项卡栏项目,objective-c,tabs,Objective C,Tabs,我有一个应用程序,其中有7个选项卡栏项目。在某个时候,我想通过编程方式单击选项卡栏项中的1项。每个选项卡栏项都有一个唯一的标记号。我想这样做: [self.tabBarController setSelectedTag:9]或获取标签号为9的选项卡栏项目的索引,以便我可以在[self.tabBarController setSelectedIndex:index]中使用它。我找不到任何解决办法。谁能帮帮我吗 提前感谢。只需在视图控制器上迭代,找到带有所需标记的控制器,然后选择它。像这样的 //

我有一个应用程序,其中有7个选项卡栏项目。在某个时候,我想通过编程方式单击选项卡栏项中的1项。每个选项卡栏项都有一个唯一的标记号。我想这样做:

[self.tabBarController setSelectedTag:9]
或获取标签号为9的选项卡栏项目的索引,以便我可以在
[self.tabBarController setSelectedIndex:index]
中使用它。我找不到任何解决办法。谁能帮帮我吗


提前感谢。

只需在视图控制器上迭代,找到带有所需标记的控制器,然后选择它。像这样的

// find the view controller
UIViewController* viewControllerToSelect;
for(UIViewController* vc in self.tabController.viewControllers) {
  if (vc.tag == tagToFind) {
    viewControllerToSelect = vc;
    break;
  }
}

// select it
self.tabController.selectedViewController = viewControllerToSelect;

有更优雅的方法可以使用谓词进行搜索,但上面的方法应该可以做到这一点。

只需在视图控制器上迭代,找到带有所需标记的控制器,然后选择它。像这样的

// find the view controller
UIViewController* viewControllerToSelect;
for(UIViewController* vc in self.tabController.viewControllers) {
  if (vc.tag == tagToFind) {
    viewControllerToSelect = vc;
    break;
  }
}

// select it
self.tabController.selectedViewController = viewControllerToSelect;
还有更优雅的搜索方法,使用谓词——但上面的方法应该可以做到这一点