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 将对象的拷贝赋给引用 拷贝完是不可改变的

原文地址:https://www.cnblogs.com/katydid/p/4278768.html