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中也是如此,因此要注意他们创建的时机。
  • 相关阅读:
    【BZOJ 3569】DZY Loves Chinese II
    【POJ3155】生活的艰辛Hard Life
    【SGU194】Reactor Cooling
    Elasticsearch 6.1.2 搭建及使用教程一
    Centos7安装Mysql-最方便、最快捷
    Realm_King 之 .NET 打包详细教程(A)
    C#程序员经常用到的10个实用代码片段
    使用VS2010再装VS2013不用再烦恼不兼容
    表变量和临时表的使用
    golang连接ftp服务器
  • 原文地址:https://www.cnblogs.com/lignpeng/p/5444738.html
Copyright © 2011-2022 走看看