一.基本知识
和UINavigationController类似,UITabBarController也可以用来控制多个页面导航,用户可以在多个视图控制器之间移动,并可以定制屏幕底部的选项卡栏。
借助屏幕底部的选项卡 栏,UITabBarController不必像UINavigationController那样以栈的方式推入和推出视图,而是组建一系列的控制器 (他们各自可以是UIViewController,UINavigationController,UITableViewController或任何 其他种类的视图控制器),并将它们添加到选项卡栏,使每个选项卡对应一个视图控制器。
二.具体介绍
1.通过代码的方式创建UITabBarController界面
代码的位置应该放在xxxAppDelegate.m中 的applicationDidFinishLaunching:方法中,因为Tab Bar Controller通常是为应用窗口提供根视图,所以需要在程序启动后,窗口显示前创建Tab Bar Controller。具体创建步骤为:
(1)创建一个新的UITabBarController对象
(2)为每一个Tab创建一个root view controller
(3)把这些root view controllers添加到一个array中,再把这个array分配给tab bar controller的viewControllers属性
(4)把tab bar controller's view添加到应用程序主窗口
例子:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
tabBarController = [[UITabBarController alloc] init];
MyViewController* vc1 = [[MyViewController alloc] init];
MyOtherViewController* vc2 = [[MyOtherViewController alloc] init];
NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil];
tabBarController.viewControllers = controllers;
// Add the tab bar controller's current view as a subview of the window
[window addSubview:tabBarController.view];
}
2.通过代码的方式创建TabBarItem
Tab Bar Controller的每个选项卡都得有一个UITabBarItem,可以在其root view controller初始化时创建并添加UITabBarItem。
例子:
- (id)init {
if (self = [super initWithNibName:@"MyViewController" bundle:nil]) {
self.title = @"My View Controller";
UIImage* anImage = [UIImage imageNamed:@"MyViewControllerImage.png"];
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:@"Home" image:anImage tag:0];
self.tabBarItem = theItem;
[theItem release];
}
return self;
}
分享到:
相关推荐
`UITabBarController`默认会包含两个`UIViewController`实例,你可以根据需要增加或减少这个数量。通过连接这些控制器到你的代码,你可以为每个标签指定不同的视图和逻辑。 `UITabBarItem` 是每个标签在 `UITabBar`...
本教程将详细介绍如何在Objective-C中简单地使用`UITabBarController`实现标签页面的切换。 首先,我们来了解`UITabBarController`的基本概念。`UITabBarController`是UIViewController的一个子类,它是苹果官方...
本示例主要讲解如何在使用 `UITabBarController` 的同时,灵活地管理和隐藏 `UITabBar`。 首先,`UITabBarController` 是一个容器控制器,它可以包含多个子视图控制器,每个子视图控制器对应一个 tab 标签。在创建 ...
`UITabBarController`作为容器控制器,可以包含多个`UIViewController`的子类实例,每个子控制器对应一个标签。默认情况下,`UITabBarController`会自动创建一个`UITabBarItem`,其标题和图标来自子控制器的`title`...
对于 `UITabBarController`,我们可以使用 `setViewControllers:animated:` 方法来设置或更新其包含的子视图控制器数组。 在实际开发中,我们可以通过 Interface Builder 或者纯代码的方式来配置和使用这两个组件。...
在实际使用"ios-自定制UITabBarController.zip"时,我们需要导入`YZTabbarViewController`头文件,然后在需要的地方创建并配置实例,设置相应的属性,并添加子控制器。这样,我们就可以轻松地享受到自定义`...
例如,在Swift中,创建和设置`UITabBarController`的子控制器会使用`viewControllers`的setter,而不再是`setViewControllers:`方法。 通过理解和实践`UITabBarControllerDemo`,开发者不仅可以掌握如何创建和管理`...
当`UITabBarController`与`UINavigationController`结合使用时,常常会在每个`TabBarItem`下嵌套一个`UINavigationController`,这样每个标签页都可以拥有自己的导航结构。例如,你可以在每个`TabBarItem`下面设置一...
`UITabBarController`管理多个`UIViewController`实例,用户可以在底部的标签之间切换。自定义`UITabBarController`通常包括以下步骤: 1. **自定义标签项**:可以修改`UITabBarItem`的图标、标题和颜色。也可以...
使用`setViewControllers:`方法可以添加一组`UIViewController`实例到`UITabBarController`。每个子控制器将对应一个标签,它们的顺序决定了标签的排列位置,第一个控制器会成为初始显示的视图。 3. **自定义标签*...
它是一个容器控制器,可以容纳多个`UIViewController`实例,每个`UIViewController`对应一个选项卡。系统默认提供了一个简单的选项卡样式,包括图标和文字。自定义工作通常涉及到以下几个方面: 1. **自定义选项卡...
在本案例中,我们将深入探讨如何进行`UITabBarController`的基本设置以及如何自定义`UITabBar`,特别是在`tabBar`中间添加自定义按钮。 首先,让我们了解`UITabBarController`的基础知识。`UITabBarController`是`...
描述中提到的“全代码定制”意味着开发者可能没有使用Interface Builder,而是完全通过编写Swift或Objective-C代码来创建和管理`UITabBarController`的实例,包括其子控制器(View Controllers)和相关的导航控制器...
5. **集成UIWebView**:在`CustomTabBarController`中,我们可以创建一个`UIWebView`实例,并将其添加到对应子控制器的视图上。同时,需要处理WebView的加载状态,例如通过代理方法`webViewDidStartLoad:`和`...
在Storyboard中,可以直接拖拽一个`UITabBarController`对象,并通过关系控制器(Relationship Segue)连接到对应的`UIViewController`实例。 2. **自定义标签**: 可以通过设置`tabBarItem`属性来定制每个子控制器...
首先,我们需要创建`UITabBarController`的实例并将其设置为应用的根视图控制器。这通常在`AppDelegate`的`didFinishLaunchingWithOptions`方法中完成: ```objc - (BOOL)application:(UIApplication *)application...
通过学习和实践这些内容,初学者可以更好地理解和掌握Swift中的`UITabBarController`使用。同时,这也提供了一个基础模板,开发者可以在此基础上进一步扩展,比如添加更多标签页、实现自定义动画等高级功能。