• iOS UI进阶03


    导航控制器

    1.导航控制器永远显示的是栈顶控制器的view

    2.导航控制器中做界面之间的跳转必须拿到导航控制器

    3.调用pop方法并不会马上销毁当前控制器

    4.popToViewController使用注意点,传入进去的控制器必须是导航控制器栈里面的控制器

    5.导航条的内容由栈顶控制器决定,一个导航控制器只有一个导航条,因此只能由一个控制器决定,谁先显示在最外面,谁就是栈顶控制器.

    6.在iOS7之后,默认会把导航条上的按钮的图片渲染成蓝色.

    7.导航条上的子控件位置不需要我们管理,只需要管理尺寸

    8.UINavigationItem:是一个模型,决定导航条的内容(左边内容,中间,右边内容)

    1. UIBarButtonItem:是一个模型,决定导航条上按钮的内容

    10.以后只要看到item,通常都是苹果提供的模型,只要改模型就能修改苹果的某些控件.

    1-控制器view的生命周期

    1. 控制器的view的生命周期方法都是以view开头

    2. viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> viewDidLayoutSubviews -> viewDidAppear -> viewWillDisappear -> viewDidDisappear

    3.在非ARC中viewDidUnload,经常用来清空界面上的数据

    2-数据存储

    1.plist存储

    1.plist存储,生成一个plist文件.

    2.plist不是数组就是字典,plist存储就是用来存储字典或者数组.

    注意:Plist不能存储自定义对象

    3.获取应用沙盒中Caches文件路径

    
        // directory:获取哪个文件夹
        // domainMask:在哪个范围内搜索,NSUserDomainMask:表示在用户的手机上查找
        // expandTilde:是否展开全路径 YES:表示展开全路径 NO:不会展开全路径,会把应用沙盒的路径用波浪号(~)代替
    
        // 获取到Caches文件夹路径
        NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    

    4.读取plist,之前是什么类型存储的,读取也是什么

    2.偏好设置存储

    
        // 偏好设置存储:NSUserDefaults
        // 以字典的形式进行偏好设置,用法跟字典.
        // 偏好设置好处:  1.不需要关心文件名
        //              2.快速进行键值对存储
        //              3.直接存储基本数据类型

    @implementation ViewController

    - (IBAction)save:(id)sender { 

        // 获取单例

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

        

        // @"123" key:pwd

        [defaults setObject:@"123" forKey:@"pwd"];

        // bool

        [defaults setBool:YES forKey:@"isOn"];

        // int

        [defaults setInteger:10 forKey:@"num"];    

    }

    - (IBAction)read:(id)sender {

            // 利用NSUserDefaults单例

       NSString *pwd = [[NSUserDefaults standardUserDefaults] objectForKey:@"pwd"];

       NSInteger i = [[NSUserDefaults standardUserDefaults] integerForKey:@"num"];

        NSLog(@"%@--%ld",pwd,i);  

    }

    3.归档

    1.NSKeyedArchiver专门用来做自定义对象归档

    // 什么时候调用:当一个对象要归档的时候就会调用这个方法归档
    // 作用:告诉苹果当前对象中哪些属性需要归档
    - (void)encodeWithCoder:(NSCoder *)aCoder
    {
        [aCoder encodeObject:_name forKey:@"name"];
        [aCoder encodeInt:_age forKey:@"age"];
    }
    
    // 什么时候调用:当一个对象要解档的时候就会调用这个方法解档
    // 作用:告诉苹果当前对象中哪些属性需要解档
    // initWithCoder什么时候调用:只要解析一个文件的时候就会调用
    - (id)initWithCoder:(NSCoder *)aDecoder
    {
        #warning  [super initWithCoder]
        if (self = [super init]) {
            // 解档
            // 注意一定要记得给成员属性赋值
          _name = [aDecoder decodeObjectForKey:@"name"];
          _age = [aDecoder decodeIntForKey:@"age"];
        }
        return self;
    }
  • 相关阅读:
    根据指定月份,打印该月份所属的季节
    求出1~100之间,既是3又是7的倍数的自然数出现的次数
    打印所有的水仙花数
    升景坊单间短期出租
    找出1000以内的所有完数
    ssh config host
    shell获取ip
    mongodb sharding 简单部署记录
    tcp转发
    openssl和Java的keytool证书相关的命令总结
  • 原文地址:https://www.cnblogs.com/liujiaoxian/p/4748828.html
Copyright © 2020-2023  润新知