• IOS之UIKit_Day04


    DAY04

    复习

    1 UIAlertView

           创建  initWithTitle

                    message

                    delegate:设置代理

                    cancelButton

                    otherButtonTitle

            设置警告框样式:

                  alert.alertView=枚举

           显示

                  [alert show]

            要想成为代理对象:

               遵守协议  实现方法  设置委托方和某一代理方关联起来

             判断用户点击的按钮

                         方法一:判断按钮的索引

                         方法二:判断按钮的标题

     

    2. UIActionSheet

           创建:

           显示[sheet showInView:self.view]

           代理对象

           遵守协议<UIActionSheetDelegate>

           实现方法

           将代理对象与委托对象关联

    3 MVC

           Model 模型 数据的存储 程序的业务逻辑 多线程 网络传输 文件存储

           View 视图 视图的搭建

           Controller 控制器 搭起了M与V的连接

    4 补充知识

           4.1 IBOutletController输出口集合

                  在控制器中声明的一个数组(用Strong修饰)但是数组的对象来源于系统中创建的对象(对象是weak

           4.2 随机数的产生

                  C语言的一个函数arc4random()

                  随机数从0开始的一个无符号的正整数

                  特点:不需要设置随机种子

                         与srand(unsigned)time(0))

                                int nun=rand()%10的区别

           4.3 Lazy Loading晚加载

                  将一些对象的初始化工作 从ViewDidLoad中提取出来,放到Get方法中进行 这样在这个对象不得不加载的时候才调用创建,而不是一开始View就创建出来。

           4.4属相如果是ReadyOnly 可以在.m文件中extrntion里面设置属性可读可写

    ---------------------------------------------------------------------------------------------------------------------

    1 多MVC之间的页面跳转

           视图之间的切换时通过切换试图控制器来实现切换的

           1》创建新的视图控制器

           2》退出新的视图

                  [self presentViewController:新控制器 animated:是否有动画 completion:nil]

           3》返回上一个视图

                  [self  dismissViewControllerAnimated:YES copletion:nil];

    2 对界面之间的传值

           2.1正向传值(A----->B)

                  1》增加属性

                  2》赋值

                  3》界面展现之前在B中重写

                         -(void)viewWillAppear:(BOOL)animated方法

           2.2 反向传值(B---->A

                  方法一:

                  step1:B中公开一个可以接受A引用的aVc;

                  step2: A 中公开一个可以接受返回值的数据类型message

                  step3:A推出B之前 将自己的引用传给B

                  step4:B在dismiss 之前将要返回的数据传给持有A的引用中公开的属性message

                  step5:在A的ViewWillAppear中显示message的内容

            

                 方法二:

                         委托方:推出的B

                         代理方:推出B的那个对象A

                                委托方需要做的三件事:

                                       1.制定协议

                                       2.制定协议的方法

                                       3.什么时候使用

                                  代理方做的三件事:

                                       1.遵守协议

                                       2.实现方法

                                       3.把自己设置为代理

    3 协议的定义:

           1》协议名:类名+Delegate

           2》方法的第一个参数一定是委托方自己

           3》方法尽量体现调用的时机

    Eg

    @protocol InputViewControllerDelegate <NSObject>

    -(void)inputViewController:(InputViewController*)inputVc inputFinishedWithMessahe:(NSString*)message;

    合适的时机给代理发消息

    @end

    添加一个公开的Delegate方法

    @property(nonatomic,weak)id<BViewControllerDelegate> delegate;

     

    5 扩展

           在类内的initXX 、get、set中使用实例变量即下划线 其他地方都用self

           内存修饰

                  copy :NSString、Block

                         copy 将对象的拷贝赋给引用 拷贝完是不可改变的

  • 相关阅读:
    一个关于最小生成树的trick
    2021牛客暑期多校训练营3 E. Math(数论/韦达定理)
    2021牛客暑期多校训练营3 J. Counting Triangles(容斥原理)
    2021“MINIEYE杯”中国大学生算法设计超级联赛(2)1001. I love cube(思维)
    LXC 入门
    python装饰器4【两个参数】【wraps】【不常规套路】
    python的windows 自动化【demo】
    groovy 闭包和函数
    groovy DSL
    Jenkins【DSL】
  • 原文地址:https://www.cnblogs.com/katydid/p/4278768.html
Copyright © 2020-2023  润新知