zoukankan      html  css  js  c++  java
  • 故事板 — 视图切换(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);
    }
    注意了:此时,只是给gaVideo这个自定义的成员变量赋值;但是self.titleLabel这个输出接口控件,还在storyBoard中,还没有初始化,还没有加载进来,因此 self.titleLabel = nil,所以是不能给self.titleLabel赋值的(因为这个对象都没有,怎么可以给它的属性赋值呢)。
    此外,自定义的成员变量是可以给他们赋值的,因为当创建这个GAPlayerViewController类的对象的时候,就创建了。
     
    那么,到了什么时候才可以给控件的接口赋值呢?
    答:当Viewdidload的时候就可以赋值。
    在xib中也是如此,因此要注意他们创建的时机。
  • 相关阅读:
    Codevs2822 爱在心中
    3098: Hash Killer II
    课程总结
    团队作业——个人总结
    团队作业2
    团队个人分工
    装甲车团队介绍(别急,在做了)
    面向对象程序设计作业(4)
    面向对象程序设计作业(3)
    面向对象程序设计(2)
  • 原文地址:https://www.cnblogs.com/lignpeng/p/5444738.html
Copyright © 2011-2022 走看看