0

我想在标签栏应用程序中交换视图,但我不能依赖视图控制器的索引,因为它们会发生变化。所以我不能使用下面的代码:

    [self.tabBarController setSelectedIndex:4];

我希望能够按名称调用特定的视图控制器。请问我该怎么做?

谢谢

4

1 回答 1

2

您可以使用以下代码选择特定类的视图控制器:

NSUInteger index = [self.tabBarController.viewControllers indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
                    return [obj isKindOfClass:[ClassOfViewControllerYouAreLookingFor class]];
            }];
if(index != NSNotFound) {
    [self.tabBarController setSelectedIndex:index];
}

或者您可以使用以下代码简单地选择特定的 ViewController 实例:

NSUInteger index = [self.tabBarController.viewControllers indexOfObject:yourViewController];
if(index != NSNotFound) {
    [self.tabBarController setSelectedIndex:index];
 }
于 2013-05-09T20:38:29.477 回答