博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一部分UI 2.视图之间跳转使用UITabBarController
阅读量:5917 次
发布时间:2019-06-19

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

 

在一个正常的IOS应用中,必然包括很多视图,我们需要在不同的视图中进行跳转,常见的方法有模态视图、UItabarController、UINavigationController进行视图之间的跳转,本篇博客总结UITabBarController的常见的用法。

一、目录

 

  1.什么是UITableBarController

  2.简单使用

  3.常见属性

      4.总结

 

二、什么是UITableBarController

 

   UITabBarController是Apple专门为了利用页签切换视图而设计的,如图所示的微信和天猫的底部导航。 

                 

 

三、简单使用

 

  我们实现如动图所示的功能,介绍UITabBarController的基本使用方法,对其有个基本的认识。

  

 

  1.使用步骤:

       (1)初始化UITabBarController

     (2)设置UIWindow的rootViewController为UITabBarController

     (3)创建相应的子控制器(UIViewController)

     (4)把子控制器添加到UITabBarController

 

2.代码示例:

 程序结构,其中有四个UIViewController视图控制器,分别对应这短信,电话,关注,联系人等视图控制器。

  

AppDelegate.m代码

1 // 2 //  AppDelegate.m 3 //  TestUITabController 4 // 5 //  Created by gurk on 15/3/19. 6 //  Copyright (c) 2015年 thinkive. All rights reserved. 7 // 8  9 #import "AppDelegate.h"10 #import "SMSCtrl.h"11 #import "PhoneCtrl.h"12 #import "FocusCtrl.h"13 #import "ContactCtrl.h"14 @implementation AppDelegate15 16 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions17 {18     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];19     self.window.backgroundColor = [UIColor whiteColor];20     21     UITabBarController *tbCtrl = [[UITabBarController alloc]init];22     //设置window的根控制器为tbCtrl23     self.window.rootViewController = tbCtrl;24     25     //创建子控制器26     SMSCtrl *smsCtrl = [[SMSCtrl alloc]init];27     PhoneCtrl *phoneCtrl = [[PhoneCtrl alloc]init];28     FocusCtrl *focusCtrl = [[FocusCtrl alloc]init];29     ContactCtrl *contactCtrl = [[ContactCtrl alloc]init];30     31 #pragma mark设置UITabBarController的底部页签的标题与图片32     //title设置标题,image属性设置图片33     smsCtrl.tabBarItem.title = @"短信";34     UIImage *smsImage = [UIImage imageNamed:@"sms.png"];35     smsCtrl.tabBarItem.image = smsImage;36     37     phoneCtrl.tabBarItem.title = @"电话";38     UIImage *phoneImage = [UIImage imageNamed:@"phone.png"];39     phoneCtrl.tabBarItem.image = phoneImage;40     41     focusCtrl.tabBarItem.title = @"关注";42     UIImage *focusImage = [UIImage imageNamed:@"focus.png"];43     focusCtrl.tabBarItem.image = focusImage;44     45     contactCtrl.tabBarItem.title = @"联系人";46     UIImage *contactImage = [UIImage imageNamed:@"contact.png"];47     contactCtrl.tabBarItem.image = contactImage;48     49     //添加UIViewController到UITabBarController中50     tbCtrl.viewControllers = @[smsCtrl,phoneCtrl,focusCtrl,contactCtrl];51     52     [self.window makeKeyAndVisible];53     return YES;54 }55 56 - (void)applicationWillResignActive:(UIApplication *)application57 {58 }59 60 - (void)applicationDidEnterBackground:(UIApplication *)application61 {62 }63 64 - (void)applicationWillEnterForeground:(UIApplication *)application65 {66     67 }68 69 - (void)applicationDidBecomeActive:(UIApplication *)application70 {71     72 }73 74 - (void)applicationWillTerminate:(UIApplication *)application75 {76     77 }78 79 @end

  

四、常见的属性

 

 1.UITabBar与UITabBarButton

  下方的页签那一行整体称为UITabBar,每个页签是UITabBarButton,如果UITabBarController有N个字控制器,那么UITabBar内部就会有N个UITabBarButton作为子控制器与之对应。

    关系如图所示

     

  注意:UITabBarButton在UITabBar中的位置是均分的,UITabBar的高度是49,

  在上面的演示程序中,UITabBarController中有4个自控制器,所以UITabBarButton有4个UITabBarButton

 

2.UITabBarButton

  UITabBarButton里面显示什么内容,由对应的子控制器tabBarItem属性来决定

1  //title设置标题,image属性设置图片2     smsCtrl.tabBarItem.title = @"短信";3     UIImage *smsImage = [UIImage imageNamed:@"sms.png"];4     smsCtrl.tabBarItem.image = smsImage;5     smsCtrl.tabBarItem.badgeValue = @"8";

具体的的属性如下:

 

 

3.有两种方式可以往UITabBarController中添加子控制器

(1)[tbCtrl addChildViewController:smsCtrl];

  (2) tbCtrl.viewControllers = @[smsCtrl,phoneCtrl,focusCtrl,contactCtrk];

 

4.在UITabBar中展示的顺序和添加的顺序是一致的。

 

五、总结

 

1.UITabBarController会一次初始化所有的子控制器,但是默认只加载第一个控制器视图,其他视图控制器只初始化默认不会加载

 

2.每个视图控制器都有哟个tabBarController属性,通过它可以访所在UITabBarController,而且对于UITabBarController的子视图其tabBarController等于parentViewController。

 

3.每个视图控制器都有一个tabBarItem属性,通过它控制视图在UITabBarController的tabBar中显示信息。

 

4.tabBarItem的image属性必须是png格式的(建议大学32*32)并且打开alpha通道否则无法正常显示。

转载于:https://www.cnblogs.com/gurongkang/p/4370052.html

你可能感兴趣的文章
LeetCode | Copy List with Random Pointer
查看>>
C语言博客05--指针
查看>>
Windows平台下,Scrapy Installation,安装问题解决
查看>>
[三]基础数据类型之Integer详解
查看>>
Android教程(2.1) Activity的详细讲解
查看>>
引入间接隔离变化(三)
查看>>
统一沟通-技巧-4-让国内域名提供商“提供”SRV记录
查看>>
cocos2d-x 3.0事件机制及用户输入
查看>>
FUHLEN/富勒 U79/U79G节能系列/U系列无线2.4G接收器-淘宝网
查看>>
比亚迪速锐F3专用夏季座套 夏天坐垫 四季坐套
查看>>
C++ 数字转换为string类型
查看>>
取证学习资料DVD
查看>>
高性能优化Web前端
查看>>
Google研究员Ilya Sutskever:成功训练LDNN的13点建议
查看>>
【转】Java并发编程:volatile关键字解析
查看>>
Sublime Text 格式化代码快捷键
查看>>
JVM系列五:JVM监测&工具[整理中]
查看>>
疯狂的 Web 应用开源项目
查看>>
hdu 4775 Infinite Go(暴力)
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>