关于 S/O 的第一个问题,如果我没有遵循任何协议,请道歉。我一直在尝试使用来自同一个 UITabBar 项目的 4 个 UIViewController 有条件地显示 4 种不同类型的场景。它必须是 TabBar 上的相同项目,因为使用的 UIViewController 取决于数据而不是用户选择。
我知道不建议子类化 UITabBarController,所以我设置了一个 UIViewController 来处理所需场景的条件选择(参见下面的代码)。这很好用,但尽管尝试了我能想到的一切,但无法在新选择的视图底部显示 TabBar。我也尝试过使用 UINavigation 控制器,但这不太成功。在 Storyboard 中,我尝试了设置视图大小和演示样式的所有不同排列,在模拟指标中将底部栏更改为选项卡栏,并尝试使用 Segues。没有人产生必要的结果。
- (void)viewDidLoad
{
[super viewDidLoad];
int m = 1;
UIViewController *viewController;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12 ) {
viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"M31TVC"];
}else if (m == 4 || m == 6 || m == 9 || m == 11 ){
viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"M30TVC"];
}else if (m == 13 ){
viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"M29TVC"];
}else if (m == 2 ){
viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"M28TVC"];
}else {
// error code here
}
viewController.hidesBottomBarWhenPushed = NO;
[self presentViewController:viewController animated:NO completion:nil];
}
提前感谢任何知道如何做这件事的人。