2
目前我有5个选项卡。第三个标签应该显示一个只占用一半屏幕空间的视图,其余的则需要整个屏幕。我想知道如何在tab的其余部分显示tab3的视图。假设当前选中的选项卡是2并且用户按下了选项卡3,它将在选项卡2的视图顶部显示选项卡3的视图。有可能这样做吗?或者我必须创建自己的视图并伪装选项卡控制器。如何使用标签栏控制器呈现透明视图?
目前我有5个选项卡。第三个标签应该显示一个只占用一半屏幕空间的视图,其余的则需要整个屏幕。我想知道如何在tab的其余部分显示tab3的视图。假设当前选中的选项卡是2并且用户按下了选项卡3,它将在选项卡2的视图顶部显示选项卡3的视图。有可能这样做吗?或者我必须创建自己的视图并伪装选项卡控制器。如何使用标签栏控制器呈现透明视图?
问题解决; 不是很优雅,但它的作品。我伪造了带有视图控制器的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;
}