2

目前我有 5 个标签。第三个选项卡应该显示一个只占用一半屏幕空间的视图,其余的则需要整个屏幕。我想知道如何在其余选项卡之上显示 tab3 的视图。假设当前选择的选项卡是 2 并且用户按下了 tab3,它会在 tab2 的视图之上显示 tab3 的视图。有可能这样做吗?或者我必须创建自己的视图并伪造标签控制器。

4

1 回答 1

0

问题解决了; 不是很优雅,但它有效。我使用没有视图的视图控制器伪造 Tab 3,并将 tabItem 3 作为呈现视图控制器的触发器。像这样的东西:

duplicatedTab3 = [[Tab3 alloc] init]
[tabbarController setViewControllers:[NSArray arrayWithObjects:tab1,tab2,tab3,tab4,tab5,nil]];

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    BOOL flag = NO;
    NSUInteger tabIndex = [tabBarController.viewControllers indexOfObject:viewController];
    if (viewController == [tabBarController.viewControllers objectAtIndex:tabIndex] &&
       tabIndex != tabBarController.selectedIndex) {
       if ([viewController isMemberOfClass:tab3]) {
           if (![duplicatedTab3 isShowing])
               [duplicatedTab3 show];
           else 
               [duplicatedTab3 hide];
       }
       else {
           flag = YES;
       }
    }
    return flag;
}
于 2013-08-27T06:34:39.563 回答