我正在寻找一种方法将标签容器中的当前视图切换到另一个标签容器,所有这些都在同一个标签页中, 不使用 导航控制器。
我尝试过这样的事情:
FooViewController *fooViewController = [[FooViewController alloc] initWithNibName:@"FooViewController" bundle:nil];
self.view.window.rootViewController.view.window.rootViewController = fooViewController;
[fooViewController release];
而且:
FooViewController *fooViewController = [[FooViewController alloc] initWithNibName:@"FooViewController" bundle:nil];
[self.view removeFromSuperview];
[self.view addSubview:fooViewController.view];
[fooViewController release];
无济于事。
有什么想法吗?
答案 0 :(得分:2)
我使用的方法是创建一个UIViewController的子类,我用它作为3个子视图控制器的根视图。根控制器的值得注意的属性是:
在setSelectedIndex方法中,您需要使用类似于以下的逻辑:
[self addChildViewController: selectedViewController];
[[self view] addSubview: [selectedViewController view]];
[[self view] setNeedsDisplay];
这非常有效,但因为我想在整个应用程序中使用单个导航控制器,所以我决定采用不同的方法。
我忘了提到你每次添加一个时都要清除子视图控制器,这样你就不会堆积大量的视图控制器而浪费内存。在上面的阻止之前:
for (UIViewController *viewController in [self childViewControllers])
[viewController removeFromParentViewController];