创建UITabBarController

一、创建UITabBarController

  • 常见的在应用程序委托类的applicationDidFinishLaunching:方法中创建,这通常可为应用窗口提供根视图。

    // 创建一个UITabBarController对象UITabBarController *tabBarController = [[UITabBarController alloc] init];
    // tabBarController.delegate = self;
    
    // 创建一系列要添加到每个具体Tab卡的视图控制器MyViewController *vc1 = [[MyViewController alloc] init];
    MyOtherViewController *vc2 = [[MyViewController alloc] init];
    
    // 将创建好的这些视图控制器先添加到一个Array对象中,再将此数组分配给Tab Bar Controller的viewControllers属性NSArray *controllers = [NSArray arrayWithObjects:vc1,vc2,nil];
    tabBarControllers.viewControllers = controllers;
    /* 也或者
    NSMutableArray *controllers =[[NSMutableArray alloc] initWithCapacity:2];
    [controllers addObject:vc1];
    [controllers addObject:vc2];
    */
    
    // 将TabBar控制器的当前视图添加到窗口[window addSubview:tabBarController.view];
    // 或者设置应用窗口的根视图管理器为TabBarController
    self.window.rootViewController = self.tabBarController; 

    当然在应用程序委托AppDelegate类中创建UITabBarController,相当于创建了一个基于Tab Bar的工程项目。不过,也可以视具体情况,我们直接在一个独立的视图控制器中创建UITabBarController实例对象,如自定义一个用于视图切换的控制器类ViewSwitcherViewController,就可在其中的viewDidLoad方法中创建所需要的TabBarController。

  • 在实现UITabBarControllerDelegate委托的视图控制器中重写init方法来自定义UITabBarItem条目。
    代码一是由initWithNibName:方法来加载具体的某个视图控制器并自定义该控制器中TabBarItem样式外观等。

    - (id)init {
       if(self = [super initWithNibName:@"MyViewController" bundle:nil]) {
           self.title = @"My View Controller";
    
           UIImage *anImage = [UIImage imageNamed:@"MyImage.png"];
           UITabBarItem *theItem = [[UITabBarItem alloc] initWithTitle:@"Home" image:anImage tag:0];
           self.tabBarItem = theItem;
           [theItem release];
       }
       return self;
    }

    代码二我们也可以直接在具体的视图控制器内部重写init方法。

    - (id)init {
       if([super init] != nil) {
           UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Home" image:[UIImage imageNamed:@"MyImage.png"] tag:0];
            self.tabBarItem = item;
            [item release];
       }
       return self;
    }
  • 实现所需的委托方法,以让UITabBarController能够正常触发这些回调方法。
    tabBarController:didSelectViewController: 是当用户选择一个新的选项卡时,控制器会发送这个消息。

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {
        // 捕捉selectedIndex,可确定当前所选选项卡    NSNumber *tabNumber = [NSNumber numberWithInt:[tabBarController selectedIndex]];
       // 使用iPhone内置用户默认系统NSUserDefaults,利用setObject:forKey:为关键字设定值   [[NSUserDefaults standardUserDefaults] setObject:tabNumber forKey:@"selectedTab"];
       [[NSUserDefaults standardUserDefaults] synchronize];
    
       // 选项卡图标项右上角红色小红圈数字提示   viewController.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d",80];
    }

创建UITabBarController,布布扣,bubuko.com

时间: 2024-10-13 23:28:23

创建UITabBarController的相关文章

用系统图标创建UITabBarController

有时候为了节省时间,做一些简单实用的选项卡界面.我们也会用系统自带的一些选项卡图标.实现方式如下: 初始化一个UITabBarController: UITabBarController *_tab = [[UITabBarController alloc]init]; 初始化一个UITabBarItem为系统item,在此处你也可以修改它的标题和其他属性: UITabBarItem *item0 = [[UITabBarItem alloc]initWithTabBarSystemItem:U

UITabBarController的创建等基本方法

1 #import "AppDelegate.h" 2 3 @interface AppDelegate () <UITabBarControllerDelegate> 4 5 @end 6 7 @implementation AppDelegate 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptio

iOS学习之UITabBarController

一.标签视图控制器——UITabBarController 1.UITabBarController的继承关系: @interface UITabBarController : UIViewController<UITabBarDelegate, NSCoding> UITabBarController和UINavigationController一样都是继承于UIViewController. 2.创建UITabBarController 程序的添加过程:UIWindow->UITab

UITabBarController+微博简单模拟1

UITabBarController是IOS中很常用的一个viewController.UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中. 一.创建 最常见的创建UITabBarController的地方就是在application delegate中的 applicationDidFinishLaunching:方法,因为UITabBarController通常是作为整个程序的roo

UITabBarController使用详解

UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod 程序等.UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中. 首先我们看一下它的view层级图: 一.手动创建UITabBarController 最常见的创建UITabBarController的地方就是在application delegate中的 applicati

UITabBarController 微信

AppDelegate.m 1 #import "AppDelegate.h" 2 #import "FirstViewController.h" 3 #import "SecondViewController.h" 4 #import "ThirdViewController.h" 5 #import "FourthViewController.h" 6 7 @interface AppDelegate

UI控件之UITabBarController

UITabBarController:标签栏控制器,继承自UIViewController,用标签栏的形式管理视图控制器,各标签栏对应的视图控制器之间相互独立,互不影响,单击标签栏,显示标签栏对应的视图控制器,各视图控制器的生命周期与tabBarController的生命周期一致使各模块之间低耦合,易于团队开发,根据需要随时添加.删除模块 创建一个tabBarItem对象,创建时指定其标题,图片和选中时的图片 UITabBarItem *item3=[[UITabBarItem alloc]in

UITabBarController详解

UITabBarController详解 UITabBarController使用详解 UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod程序等.UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中. 首先我们看一下它的view层级图: 一.手动创建UITabBarController 最常见的创建UITabBarContr

iOSDay28之UITabBarController

1. 标签视图控制器 -- UITabBarController 视图(UIView) ---> 图层 ---> 子视图 视图控制器(UIViewController) ---> 管理视图 导航控制器(UINavigationController) ---> 管理有层次关系的视图控制器 标签视图控制器(UITabBarController) ---> 管理没有层次关系的视图控制器 1> UITabBarController的继承关系 @interface UITabBa