天天看点

故事板 — 视图切换(segue)与传值

故事板 — 视图切换(segue)与传值
故事板 — 视图切换(segue)与传值

1、传值问题:为什么不能给控件的接口赋值 如执行Segue跳转 [self performSegueWithIdentifier:GAPlayeVideo sender:gaVideo]; //在跳转到目标界面前,给目标对象传递参数 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {      if ([segue.identifier isEqualToString:GAPlayeVideo]){         //获取目标ViewController

        GAPlayerViewController *gaPlay=segue.destinationViewController;

        //传递参数

        gaPlay.gaVideo=sender;     } } 当执行了这句: gaPlay.gaVideo=sender; 系统就会来到这个对象的成员变量的setting方法, -(void)setGaVideo:(GAVideo *)gaVideo{     _gaVideo = gaVideo;     self.titleLabel.text = gaVideo.name; //self.titleLabel 是UILabel类型的输出接口,在storyBoard中的GAPlayerViewController类绑定的vc界面上     self.title = gaVideo.name;     self.VideoURL = [NSURL URLWithString:gaVideo.videoSite]; //self.VideoURL:是自定义的成员变量,可以赋值 //    NSLog(@"%@",gaVideo.videoSite); }

故事板 — 视图切换(segue)与传值

注意了:此时,只是给gaVideo这个自定义的成员变量赋值;但是self.titleLabel这个输出接口控件,还在storyBoard中,还没有初始化,还没有加载进来,因此 self.titleLabel = nil,所以是不能给self.titleLabel赋值的(因为这个对象都没有,怎么可以给它的属性赋值呢)。 此外,自定义的成员变量是可以给他们赋值的,因为当创建这个GAPlayerViewController类的对象的时候,就创建了。  

故事板 — 视图切换(segue)与传值

那么,到了什么时候才可以给控件的接口赋值呢? 答:当Viewdidload的时候就可以赋值。 在xib中也是如此,因此要注意他们创建的时机。

转载于:https://www.cnblogs.com/lignpeng/p/5444738.html