博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tab bar controller
阅读量:6548 次
发布时间:2019-06-24

本文共 4077 字,大约阅读时间需要 13 分钟。

下面记一下怎样通过代码的方式为选项卡添加视图。

1、创建一个基于Empty Application的项目

2、创建两个新类,基类选择UIViewController,勾选With XIB for user interface分别命名为"OneController'和"TwoController",

3、分别更改OneController.xib和TwoController.xib文件的view背景颜色,便于区分

4、在AppDelegate.m文件中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ }函数做如下修改(记得导入OneController和TwoController的头文件)

 

[cpp]
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.   
  5.     //将tabBar(选项卡)添加进来   
  6.     UITabBarController *tabBarController = [[[UITabBarController alloc] init] autorelease];  
  7.       
  8.     //为选项卡添加子控制器   
  9.     OneController *one = [[[OneController alloc] init] autorelease];  
  10.     [tabBarController addChildViewController:one];  
  11.       
  12.     TwoController *two = [[[TwoController alloc] init] autorelease];  
  13.     [tabBarController addChildViewController:two];  
  14.       
  15.       
  16.       
  17.     self.window.rootViewController = tabBarController;  
  18.       
  19.     [self.window makeKeyAndVisible];  
  20.     return YES;  
  21. }  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];    //将tabBar(选项卡)添加进来    UITabBarController *tabBarController = [[[UITabBarController alloc] init] autorelease];        //为选项卡添加子控制器    OneController *one = [[[OneController alloc] init] autorelease];    [tabBarController addChildViewController:one];        TwoController *two = [[[TwoController alloc] init] autorelease];    [tabBarController addChildViewController:two];                self.window.rootViewController = tabBarController;        [self.window makeKeyAndVisible];    return YES;}

 

 

运行效果如下:

 

现在创建好的选项卡下面是没有图标和文字的,,,现在我们通过代码给它们添加一些图标和文字,注意,,选项卡的图标和文字是子控制器决定的而不是tab Bar Controller,,这点要记住。

 

[cpp]
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.   
  5.     //将tabBar(选项卡)添加进来   
  6.     UITabBarController *tabBarController = [[[UITabBarController alloc] init] autorelease];  
  7.       
  8.     //为选项卡添加子控制器   
  9.     OneController *one = [[[OneController alloc] init] autorelease];  
  10.     one.tabBarItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:0] autorelease];//增加系统自带的下载图标   
  11.     [tabBarController addChildViewController:one];  
  12.       
  13.     TwoController *two = [[[TwoController alloc] init] autorelease];  
  14.     //添加一个自定义的图标和文字   
  15.     two.tabBarItem.title = @"two";  
  16.     two.tabBarItem.image = [UIImage imageNamed:@"success.png"];  
  17.     [tabBarController addChildViewController:two];  
  18.       
  19.       
  20.       
  21.     self.window.rootViewController = tabBarController;  
  22.       
  23.     [self.window makeKeyAndVisible];  
  24.     return YES;  
  25. }  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];    //将tabBar(选项卡)添加进来    UITabBarController *tabBarController = [[[UITabBarController alloc] init] autorelease];        //为选项卡添加子控制器    OneController *one = [[[OneController alloc] init] autorelease];    one.tabBarItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:0] autorelease];//增加系统自带的下载图标    [tabBarController addChildViewController:one];        TwoController *two = [[[TwoController alloc] init] autorelease];    //添加一个自定义的图标和文字    two.tabBarItem.title = @"two";    two.tabBarItem.image = [UIImage imageNamed:@"success.png"];    [tabBarController addChildViewController:two];                self.window.rootViewController = tabBarController;        [self.window makeKeyAndVisible];    return YES;}

 

 

以上代码中,我在第一个Controll View 中添加了一个系统自带的下载图标,,在第二个Controller View中添加了一个自定义的图标(先将图标导入到项目中)和文字。

运行效果如下:

以上的所有代码我都是在AppDelegate.m文件中得

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ }函数中实现的,,,这仅仅只是为了操作方便才这样写的,,大多数情况下是写在该tab Bar Controller 的实现文件中的,如这里是在的MyTabController.m文件中的- (id)init{ } 函数中实现的。

转载于:https://www.cnblogs.com/yulang314/p/3568333.html

你可能感兴趣的文章
27.Docker集群部署
查看>>
DNS保存
查看>>
IOS 多线程02-pthread 、 NSThread 、GCD 、NSOperationQueue、NSRunLoop
查看>>
第一周冲刺第五天博客
查看>>
[LeetCode]Longest Increasing Path in a Matrix
查看>>
集合set-深入学习
查看>>
C#语言学习——面向对象的几大原则
查看>>
zk 常用资料整理(转)
查看>>
JavaScript 字符串操作
查看>>
Android中asset文件夹和raw文件夹区别
查看>>
第二章家庭作业 2.78
查看>>
Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)
查看>>
Risc-V指令集
查看>>
Python进阶04 函数的参数对应
查看>>
C语言结构体的“继承”
查看>>
POJ 3468 A Simple Problem with Integers(线段树 区间更新)
查看>>
安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
查看>>
Git 使用教程
查看>>
TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
查看>>
Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
查看>>