美文网首页
iOS 之UITabBarController

iOS 之UITabBarController

作者: CarsonChen | 来源:发表于2016-03-14 20:01 被阅读529次

    一. 标签视图控制器--UITabBarController

    UITabBarController--标签视图控制器,用来管理没有层次递进关系的试图控制器.

    视图->图层->子视图

    视图控制器->管理视图

    导航视图控制器->管理有层次关系的视图控制器

    标签视图控制器->管理没有层次关系的视图控制器

    UITabBarController 与 UINavigationController 一样都继承于UIViewController.

    UITabBarController的三层结构 1. Tab Bar Controller View  2. Custom content  3. Tab Bar

    创建UITabBarController步骤:

    1. 创建UITabBarController的实例化对象;

    2. 将UITabBarController对象管理的视图控制器放到一个数组中;

    3. 设置UITabBarController的实例化对象的子视图控制器数组;

    4. 将window的跟视图控制器至为UITabBarController的实例化对象.

    程序添加的过程:

    UIWindow -> UITabBarController -> UINavigationController -> UIViewController

    UITabBarController的重要属性:

    1. viewControllers 所管理的视图控制器(NSArray)

    2. tabBar 标签栏

    3. selectedIndex 选中的某个tabBarItem

    4. delegate 代理 

    当点击某个标签的时候触发方法

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

    二. UITabBar

    UITabBar包含多个UITabBarItem,每一个UITabBarItem对应一个UIViewController.UITabBar的高度为49.系统最多会显示5个UITabBarItem,当UITabBarItem超过5个的时候系统会自动增加一个更多按钮,点击更多按钮,并没有在底部显示而按钮是以列表的形式显示出来.

    UITabBar的属性:barTintColor(背景颜色) tintColor(渲染的颜色)

    translucent为BOOL性属性,半透明度,默认为YES

    UITabBarItem可以通过属性title,badgeValue来设置标题及提示.

    自定义TabBar外观:

    可以修改器TabBarItem上的style 例如tittle 以及 Image等等.

    三. UIAppearance

    一键设定所有的导航视图控制器的颜色,类似于QQ的一键换肤,可以通过UIAppearance协议来进行操作.

    设置全局的最好设置在appDelegate里面,否则无效

    [[UITabBar appearance] setBarTintColor] = [UIColor cyanColor];

    四. 三大控制器的综合使用

    UIViewController  UINavigationController  UITabBarController

    UITabBarController是项目开发中常见的布局样式,与UINavigationController不同,它的viewControllers都是并列的,而UINavigationController的则是由层级关系的.

    UITabBar通常都会定义外观以适应程序风格,必要时会完全自定义.

    五. 扩展内容(NSUserDefault,NSURL)

    NSUserDefault (判断用户是否第一次使用该app)

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; //该方法在该应用中,获取到的键值均为同一个对象.

    [user setObject:self.userName.text forKey:@"userName"];

    NSURL:

    UIApplication *app = [UIApplication sharedApplication];  //单例方法,获取当前的应用对象

    [app openURL :[NSURL UILWithString:@"http://www.baidu.com"]]; //打开其他应用

    相关文章

      网友评论

          本文标题:iOS 之UITabBarController

          本文链接:https://www.haomeiwen.com/subject/wcvflttx.html