//1.传值方式
//1.属性传值: 从前一个页面向后一个页面传值
//a.在后一个页面, 根据传值的类型和个数, 写属性
//b.在前一个页面, 为属性赋值
//c.在后一个页面, 使用值
//2.代理传值: 从后一个页面向前一个页面传值
//后一个页面(找代理)
//a. 制订协议
//b. 写delegate 属性
//c. 在合适的时候, 让代理协议执行方法
//3.前一个页面(成为代理)
//a.建立关系
//b.遵守协议
//c.实现协议方法
//4.单例传值: 多个页面间的传递
//a.创建单例类
//b. 根据参数的个数和类型, 在单例中写属性
//c. 内容存入单例
//d. 从单例中取内容
//缺点:
//a.创建对象时, 必须使用单例方法, 不能使用 alloc + init
//b.单例到程序结束才释放, 内部不能放过大的数据.(应用从头到尾都要用, 就设置为单例)
//5.block 传值: 从后一个页面到前一个页面(只要能写成代理传值,都可以写成 block 传值)(一般更简单)
//后一个页面
//a.对 block 类型, 重命名
//b.写 block 属性
//c.在合适的 时候, 调用 block
//前一个页面
//a.为 block 赋值
//求两个整数之和的 block
//前面两个值表示, 参数类型; 后面表示参数
// int(^sum)(int, int) = ^(int a, int b) {
// return a + b;
// };
// NSLog(@"%d", sum(2,3));
//重命名,参数类型重命名
typedef int(^Sum)(int, int);
Sum sum = ^(int a, int b) {
return a + b;
};
sum(2,5);//调用使用
Box *box = [Box defaultBox];
NSLog(@"%@", box);
Box *box1 = [Box defaultBox];
NSLog(@"%@", box1);
// Box *box3 = [[Box alloc] init];//错误的
//比如:
// [UIScreen mainScreen]
// [UIApplication sharedApplication]
//UIViewController的生命周期(一个对象从创建到消亡的过程)
//1.alloc + init
//2.loadView
//3.viewDidLoad
//4.viewWillAppear
//5.viewDidAppear
//6.view WillDisapper
//7.viewDidDisapper
//8.dealloc
//注:1238, 只会执行一次; 4567:执行多次
return YES;
}
多练!!!!
5种传值方式
最新推荐文章于 2024-05-16 01:53:10 发布