目前我有5个标签。第三个选项卡应该显示一个只占屏幕空间一半的视图,其余部分需要整个屏幕。我想知道如何在其余选项卡上显示tab3的视图。假设当前选择的选项卡为2,用户按Tab3,它会在tab2视图的顶部显示tab3的视图。有可能吗?或者我必须创建自己的View并伪造标签控制器。
答案 0 :(得分: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;
}