如何在 iOS 上以编程方式创建选项卡视图
Posted
技术标签:
【中文标题】如何在 iOS 上以编程方式创建选项卡视图【英文标题】:How can I create a tab view programmatically on iOS 【发布时间】:2011-05-07 09:48:32 【问题描述】:对于 iPhone 应用程序,我如何以编程方式创建选项卡视图,最好是在 Objective-C 中?
【问题讨论】:
【参考方案1】:通过UITabBarController 创建一个UITabBar 非常简单。以下示例应在您的 AppDelegate 类中工作。
应用代理界面
首先,在界面中,我们将定义我们的UITabBarController。
UITabBarController *tabBarController;
应用代理实现
然后,在实现文件的application:didFinishLaunchingWithOptions:
方法中,我们将初始化我们的标签栏控制器。
// Initialise our tab bar controller
UITabBarController *tabBarController = [[UITabBarController alloc] init];
接下来,您需要创建要添加到标签栏控制器的视图控制器。我们需要在其中添加一些信息来设置选项卡的标题/图标,但我会在最后回到这一点。
// Create your various view controllers
UIViewController *testVC = [[TestViewController alloc] init];
UIViewController *otherVC = [[OtherViewController alloc] init];
UIViewController *configVC = [[ConfigViewController alloc] init];
由于 setViewControllers:animated: 方法需要一个视图控制器数组,我们将把我们的视图控制器添加到一个数组中然后释放它们。 (因为 NSarray 会保留它们。)
// Put them in an array
NSArray *viewControllers = [NSArray arrayWithObjects:testVC, otherVC, configVC, nil];
[testVC release];
[otherVC release];
[configVC release];
然后简单地为 UITabBarController 提供视图控制器数组并将其添加到我们的窗口中。
// Attach them to the tab bar controller
[tabBarController setViewControllers:viewControllers animated:NO];
// Put the tabBarController's view on the window.
[window addSubview:[tabBarController view]];
最后,确保在 dealloc
方法中调用 [tabBarController release];
。
查看控制器实现
在每个视图控制器中,您还需要在 init 方法中设置选项卡的标题和图标,如下所示:
// Create our tab bar item
UITabBarItem *tabBarItem = [self tabBarItem];
UIImage *tabBarImage = [UIImage imageNamed:@"YOUR_IMAGE_NAME.png"];
[tabBarItem setImage:tabBarImage];
[tabBarItem setTitle:@"YOUR TITLE"];
【讨论】:
当我以编程方式创建自己的tabBarControllers 时,我总是为每个选项卡创建一个navigationController,并且每个navigationController 都使用rootViewController 进行初始化。在我看来,在您的示例中,由于您没有导航控制器,因此无法创建导航堆栈,但我从未尝试过这样编码。 @Wolfgang 我想这取决于您是否要将项目推送/弹出到导航堆栈。 (我的例子是一个相当低端的“只是基础”方法。) @Kiran 没问题 - 希望一切顺利。 :-)【参考方案2】:这就是我们必须以编程方式创建标签栏的方式
UINavigationController *BandNavigationController3;
AudienceSettingsViewController *audienceSettingsViewView =[[AudienceSettingsViewController alloc]initWithNibName:@"AudienceSettingsViewController" bundle:nil];
BandNavigationController3 = [[UINavigationController alloc]initWithRootViewController:audienceSettingsViewView];
BandNavigationController3.tabBarItem.title = @"Settings";
BandNavigationController3.tabBarItem.image = [UIImage imageNamed:@"settings.png"];
[BandNavigationController3.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:4];
BandNavigationController3.navigationBar.hidden = YES;
[bandTabBarArray addObject:BandNavigationController3];
[BandNavigationController3 release];
[audienceSettingsViewView release];
[tabBarController setViewControllers:bandTabBarArray];
[bandTabBarArray release];
【讨论】:
以上是关于如何在 iOS 上以编程方式创建选项卡视图的主要内容,如果未能解决你的问题,请参考以下文章