zoukankan      html  css  js  c++  java
  • IOS开发之UI设计---TabBarController,NSUserDefault,代理的设计

    UITabBarController : UIViewController

     

    UITabBarController :管理UIViewController(以数组的方式管理-----并列关系)

    UINavigationController :管理UIViewController(以栈的方式管理-----层级关系)

    UITabBarController : 高度为49px,如果要加自定义的图片到Item,图片高度为30px

     

     

    //UITabBarController : 管理UIViewController

        UITabBarController *tabarCtrl = [[UITabBarControlleralloc]init];

     

    //UITabBarController添加控件

        ViewController *viewCtrl = [[ViewControlleralloc]init];

        viewCtrl.view.backgroundColor = [UIColor purpleColor];

        

    //定制UITabBarController上的按钮

        //UITabBarItem 定制tabbar控件专用类

        viewCtrl.tabBarItem = [[[UITabBarItemalloc]initWithTabBarSystemItem:UITabBarSystemItemDownloadstag:1] autorelease];

    //—— 初始化一个UITabBarItem 控件

    - (id)initWithTabBarSystemItem:(UITabBarSystemItem)systemItem tag:(NSInteger)tag;

    //——

    NSArray *arr = [NSArray arrayWithObjects:viewCtrl, nil];

    [viewCtrl release];

    tabarCtrl.viewControllers = arr;

     

    //UITabBarController作为window的根视图控制器

        self.window.rootViewController = tabarCtrl;

        [tabarCtrl release];

     

    UINavigationController *navCtrl = [[UINavigationControlleralloc]initWithRootViewController:viewCtrl]; //viewCtrl添加导航栏,

    导航控制器作为视图存放进数组arr,

    [arr addObject:navCtrl];

    tabarCtrl.viewControllers = arr;

     

    //协议 : 一组未实现的接口

    /*  代理对象:(A)

     *   谁实现接口,谁就是代理,就必须遵守该协议,在代理的.h文件中写加上<协议名>

     *   协议(接口)实现在代理的.m文件中

     *  被代理对象:(B)

     *   要声明一个成员变量 id<协议名> delegate;实现delegategetter/setter方法

     *   被代理对象中实现一个方法C,调用协议(接口),协议在被代理对象中不实现.

     *用法:

     *  B.delegate = A;

     *  

     *[B 调用C方法];

     */

    //代理调用协议的固定写法

        if (delegate &&[delegate performSelector:@selector(协议)]) {

            [delegate performSelector:@selector(协议)];

        }

     

     

    NSUserDefault : NSObject

     

    NSUserDefault的用法:

     AppDelegate:

    //创建一个对象

    NSString *pswd = @"13579";

        //NSUserDefault中保存一个对象

        [[NSUserDefaultsstandardUserDefaults] setObject:pswd forKey:@"password"];

    /* The value parameter can be only property list objects: NSData,  * NSString, NSNumber, NSDate, NSArray, or NSDictionary. 

    * For NSArray and NSDictionary objects, their contents must be 

    * property list objects.

    */

        //同步到本地磁盘

        [[NSUserDefaultsstandardUserDefaults] synchronize];

     

     RootViewCtroller:

    //读取NSUserDefault中的对象

        //读取对象时的key必须与存对象时的key一致

        NSString *pswd = [[NSUserDefaultsstandardUserDefaults]objectForKey:@"password"];

     

     

  • 相关阅读:
    阿里MaxCompute(原ODPS)如何修改列字段数据类型
    解决SQL语句在Dapper执行超时比Query慢的问题
    IIS部署FLASK网站
    如何在vscode中调试python scrapy爬虫
    [转]阿拉伯数字转一二三和壹贰叁
    第三册复习
    不知道的口语
    跟小丸子学基础口语21-25
    跟小丸子学基础口语16-20
    跟小丸子学基础口语11-15
  • 原文地址:https://www.cnblogs.com/my_work_blog_space/p/3164328.html
Copyright © 2011-2022 走看看