在我的iOS应用中,标签项的数量无法修复。它将决定运行时间。假设有4个选项卡我将要显示,然后我将创建4个相同UIViewController
运行时的实例(内部4个不同的导航控制器)。
以下是我们访问特定视图控制器的操作:
id controller1 = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
[controller1 setTitle:@"Football"];
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:controller1];
[arrControllers insertObject:nav1 atIndex:0];
我想要做的是让4个导航控制器实例具有相同视图控制器的实例。所有4个视图控制器都将具有相同的功能(一个将显示足球的视频,一个将显示篮球视频..)手段,在故事板中,MyViewController
是一个视图控制器,但需要创建不同的实例MyViewController
我怎么能这样做?我必须这样做的唯一原因是,tabbar的标签不会被修复,那些将是动态的。
请分享任何有用的信息..
答案 0 :(得分:1)
视图控制器一次只能包含一个其他视图控制器。即使情况并非如此,我怀疑您是否希望跨标签使用相同的实例,因为每次用户更改标签时,您都要承担更改状态的负担。 / p>
更简单的设置是创建具有唯一根的独特导航vcs,以响应来自服务器的数据,例如....
// you've figured out here that you need four tabs, based on
// a response from the server like...
NSArray *tabNames = @[ @"one", @"two", @"three" @"four"]; // from the server
NSArray *tabs = [@[] mutableCopy];
for (NSString *tabName in tabNames) {
MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
vc.title = tabName;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
[tabs addObject:nav];
}
// here, tabs is an array of view controllers that can
// be assigned to the tabBar viewControllers property