属性传值(一个页面切换到下一个页面, 值的传递)
2016-01-11 13:07
274 查看
FirstViewController *firstVC = [[FirstViewController alloc] init]; UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:firstVC]; //半透明度默认为 no navigation.navigationBar.translucent = YES; self.window.rootViewController = navigation; [firstVC release]; [navigation release]; //传值方式 //1.属性传值: 从前一个页面向后一个页面传值 //a.在后一个页面, 根据传值的类型和个数, 写属性 //b.在前一个页面, 为属性赋值 //c.在后一个页面, 使用值 //UIViewController的生命周期(一个对象从创建到消亡的过程) //1.alloc + init //2.loadView //3.viewDidLoad //4.viewWillAppear //5.viewDidAppear //6.view WillDisapper //7.viewDidDisapper //8.dealloc //注:1238, 只会执行一次; 4567:执行多次 return YES; } //在第二个页面的操作: //传值第一步 @property (nonatomic, copy)NSString *youName, *herName; //在第一个页面的操作: - (void)test { if (yourTF.text.length == 0 || herTF.text.length == 0) { //给一个提示 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"名字不能为空" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alertView show]; return; } // SecondViewController *secondController = [[SecondViewController alloc] init]; // //传值第二步 // secondController.youName = yourTF.text; // secondController.herName = herTF.text; // [self.navigationController pushViewController:secondController animated:NO]; // [secondController release]; //模态切换 SecondViewController *secondVC = [[SecondViewController alloc] init]; secondVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:secondVC animated:YES completion:nil]; } //传值第三步的操作: - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%s", __FUNCTION__); // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor cyanColor]; NSArray *array = @[@"你们的爱情基础非常深厚,牢不可破,然而却因为求学或工作的原因,使得你们分隔两地,聚少离多。也许是因为相聚短暂而益显珍贵,而e信来往,电话传情给你们平添一份情调。", @" 你们是众人眼中的神仙眷侣,站在一起怎么看怎么般配,很有传说中的夫妻相。你们之间或许没有惊天地泣鬼神的爱情神话,或许没有刻骨铭心的激情,但是你的之间的温情和默契却能让你们的心越走越近,一起慢慢变老。", @"你们是如此的匹配,如此和谐,往往是你刚想说“可惜”他已经开始叹惜。你们性格相合,有共同的爱好,品味一致。就是这么默契,令人们羡慕得不得了。没办法,谁叫你们连姓名的笔画也一样呢。", @"你们俩的姻缘线诡异,连鄙人也无法测算。", @" 你们的感情一般是从学生时代开始的,那青涩的恋爱留给你们酸酸甜甜的味道让你们用一生去怀念彼此,但是你们的爱情却注定了没有结果,你们会试着遗忘对方,开始自己新的生活,但心中那最温柔的角落一直被初恋占据。", @"你们前世是冤家,今生做情侣,所以就难免有一些不和谐的音符出现来折磨你们的爱情。你们的感情大起大落,分分合合,不过你们最终会修成正果,恩爱到老的。"]; NSString *string = [NSString stringWithFormat:@"%@和%@的测试结果:\n%@", _youName, _herName, array[arc4random() % 6]];//对任何数取余, 最终的结果:0至该数-1 //计算高度 //参数1: 容器大小, 必须保证其中一个固定, 不确定就写0 //参数2: 计算方式, 行间距 + 行高 //参数3: 字体样式 //参数4: 上下文, 用于传值 NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:17]}; CGRect rect = [string boundingRectWithSize:CGSizeMake(335, 0) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dic context: nil];//最终只要 rect 的高度 //注意, 这样写的目的是为了, label 最终的高度与文字相同. 字符串有个方法 boundingRectWithSize. //字典,尺寸大小; 基本上是写在一块的; //位运算(二进制运算), 位运算, 支持, 依次取多个(只要通过按位或即可) //按位或:(|): 同0为0, 有一个是1, 即为1 //按位与:(&): 同1为1, 有一个是0, 即为0 //按位异或:(^): 相同为0, 不同为1 //按位取反(): 1变0, 0变1 //左移(<<):左移 n 位, 不够的补0 //右移(>>)右移 n 位, 多余的除去 UILabel *resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 84, 335, rect.size.height)]; resultLabel.text = string; resultLabel.numberOfLines = 0; resultLabel.backgroundColor = [UIColor whiteColor]; [self.view addSubview:resultLabel]; }
相关文章推荐
- Android之简单改变按钮颜色方案
- 将多个字典添加到数组输出
- 企业号微信消息响应
- 使用PIL时遇到的图片质量问题
- C语音 指针 指向一维数组元素
- MPL,MIL和MCL
- IOS-0812-图片浏览&Tom 猫(笔记)
- Linux 下安装配置 JDK7
- fileters文件不起作用 原因
- O(A*B)优化到O(A+B)
- Xamarin
- NSArray和NSDictionary的混合
- LeetCode OJ:Convert Sorted List to Binary Search Tree(将排序好的链表转换成二叉搜索树)
- 字典排序
- Linux下修改MySQL编码的方法
- C语音 指针
- 深入理解Java虚拟机 类加载子系统2
- Android Studio--Plugin is too old...
- linux挂载U盘,及乱码问题解决
- 1)Linux学习笔记:crontab命令