如何在没有XIB的情况下将Tab Bar添加到现有视图控制器

And*_*dre 2 iphone xcode uitabbarcontroller

试图尽可能避免使用Interface Builder.

目前我通过代码创建了视图控制器,并通过代码更改了视图.

我现在需要其中一个步骤将应用程序发送到带有标签栏的新视图,这样我也可以更改视图.

理想情况下,我要做的是告诉当前的视图控制器在底部添加一个Tab Bar,但我不确定这是否可行,所以我可能不得不用UITabBarController交换UIViewController?

任何帮助将不胜感激.

干杯,安德烈

med*_*pal 6

我手边没有XCode所以我会尝试口头回答.

创建一个新的UITabBarController并将当前视图设置为root view,然后根据需要添加任意多个选项卡(每个选项卡都有自己的视图).

更新
初始化控制器后,定义视图数组(添加顺序很重要).并在标签栏控制器上调用它

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

更新2

这是一个简单的代码,用于创建一个带有两个空视图的标签栏,每个视图栏都有自己的标签按钮.

tabBarController = [[UITabBarController alloc]init];

firstView = [[FirstView alloc] init];
UITabBarItem *item1 = [[[UITabBarItem alloc]initWithTitle:@"First" image:nil tag:1] autorelease];
[firstView setTabBarItem:item1];

secondView = [[SecondView alloc] init];
UITabBarItem *item2 = [[[UITabBarItem alloc]initWithTitle:@"Sec" image:nil tag:1] autorelease];
[secondView setTabBarItem:item2];

[tabBarController setViewControllers:[NSArray arrayWithObjects:firstView,secondView,nil] animated:NO];

[window addSubview:tabBarController.view];
Run Code Online (Sandbox Code Playgroud)

当然这个代码不会有用,你需要手动创建视图,或者为每个视图创建一个nib文件并加载它 initWithNibName

更新3
查看斯坦福大学iPhone课程,这是斯坦福大学的免费课程.讲师是Apple的员工.第7讲标题为导航和标签栏控制器将为您提供良好的开端.