属性传值(一个页面切换到下一个页面, 值的传递)

时间:2021-03-13 17:00:34
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];

}