gpt4 book ai didi

iphone - 与 Storyboard中的 UITabBarController 交谈

转载 作者:行者123 更新时间:2023-12-01 18:28:22 26 4
gpt4 key购买 nike

所以在我的应用程序中,我使用了 Storyboard,以及初始的 viewControllerUITabBarController .我想要做的是当应用程序启动时,我希望能够设置tabBarController有 3 项或 4 项。所以在 appDel ,我计划检查用户应该看到 3 或 4 个标签的天气,然后是 tabBarController应该反射(reflect)这一点。

我尝试子类化 tabBarController ,但它不工作:

@implementation TabBarController

-(id) init{
if ((self = [super init])) {
[[[[self tabBar] items] objectAtIndex:2] setEnabled:YES];
[[[[self tabBar] items] objectAtIndex:3] setEnabled:NO];
[[[[self tabBar] items] objectAtIndex:3] setHidden:YES];
}
return self;
}
@end

任何帮助将不胜感激。
提前致谢。

最佳答案

我认为更简单(可能不是最好)的方法是让 TabBar Controller 不是初始 View Controller 并创建两个标签栏 Controller 。从您的初始 View 中,您可以决定使用您将显示的标签栏 Controller 。您还可以将两个选项卡栏 Controller 链接到相同的选项卡/ View Controller (在它们之间重复的那些)。

在初始 View Controller 中,您添加一些代码以了解您将执行哪个 segue,瞧。

像这样的东西:
enter image description here

不过,我正在研究一个代码解决方案(似乎很有趣!)。如果我发现任何东西会更新。

编辑:
这是编码的解决方案。 (我正在使用 Storyboard ,但我相信您可以翻译代码以使用 nib 文件)。

首先要做的是创建 Storyboard的一个实例:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];

然后实例化tabbarcontroller:
UITabBarController *myTab = [storyboard instantiateViewControllerWithIdentifier:@"tabBar"];

然后实例化要添加到标签栏的新 View Controller :
UIViewController *newVC = [storyboard instantiateViewControllerWithIdentifier:@"newView"];

这是有趣的部分,您将所有 View Controller /选项卡放入一个数组中,然后从该数组中添加或删除 View 。然后将 tabbarcontroller 的 View Controller 设置为修改后的数组(我添加一个 viewController 并删除另一个)。
NSMutableArray* controllers = [myTab.viewControllers mutableCopy];
[controllers insertObject:newVC atIndex:0];
[controllers removeObjectAtIndex:2];
[myTab setViewControllers:controllers];

然后你可以像这样插入你的标签栏 Controller :
[self.navigationController pushViewController:myTab animated:YES];

这里我使用的是 Storyboard和 ARC,如果你不使用 ARC,你可以为 nib 修改它并释放数组。这写起来很有趣!希望能帮助到你!干杯!

关于iphone - 与 Storyboard中的 UITabBarController 交谈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com