【发布时间】:2014-06-27 19:14:45
【问题描述】:
我在运行时以编程方式更改标签栏的标签栏项目。 我的应用程序的整个 UI 都使用 Storyboard,这是我在代码中更改 UI 的唯一区域。
因此,UI 会根据属性而变化。如果找不到此属性,则 viewControllers 数组将更改为包含新 UIView 的新数组。
这是我的 TabBarController.m 代码:
NSArray *arrayOfControllers = self.viewControllers;
NSMutableArray *newArrayOfControllers = [[NSMutableArray alloc]init];
for (id controller in arrayOfControllers)
{
[newArrayOfControllers addObject:controller];
}
if ( !isMember)
{
NotMemberVC *vc = [[NotMemberVC alloc]init];
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Test" image:[UIImage imageNamed:@"door-sign.png"] tag:0];
[newArrayOfControllers removeLastObject];
[newArrayOfControllers addObject:vc];
self.viewControllers = newArrayOfControllers;
}
当我选择这个新的标签栏项目时,它的外观如下:
关于如何解决此问题的任何建议?
【问题讨论】:
-
在哪里为 NotMemberVC 创建视图?
-
视图已在我的单个 Storyboard 中创建
-
那你需要用 UIStoryboard 方法创建控制器,instantiateViewControllerWithIdentifier:,而不是 alloc init。
-
嗯,我不知道该怎么做。您有任何示例代码或链接可以告诉我如何执行此操作吗?这是我完全用代码创建的第一个视图,所以我有点迷茫
-
哦,你的意思是不是这个:NotMemberVC *vc = [[NotMemberVC alloc]init];?
标签: ios uiview uitabbarcontroller