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中也是如此,因此要注意他们创建的时机。
  • 相关阅读:
    3、使用DB first创建上下文并生成数据库表
    2、新建解决方案,新建项目,配置引用
    1、Visual Studio 2019下载及安装
    7、权限管理数据库
    6、添加Common类
    四年下学期古诗
    三年级必背古诗
    用PHPCMS V9完成wap网站四步法
    Thinkphp笔记---查询方式
    ThinkPHP快捷查询
  • 原文地址:https://www.cnblogs.com/lignpeng/p/5444738.html
Copyright © 2011-2022 走看看