zoukankan      html  css  js  c++  java
  • Storyboard可视化编程详解

    storyboard :故事版,描述软件界面。

    应用程序的启动原理:

    应用程序启动的时候,首先会加载一个Main Interface 里的 main.storyboard

    UIViewController 控制器,处理界面的各种事件,并负责界面的创建和销毁。

    IBAction:

    ①只能修饰方法返回值类型

    ②被IBAction修饰的方法能脱线到storyboard中、返回值实际是void

    ③使用方式 -(IBAction)buttonClick{}

     

    IBOutlet:

    ①只能修饰属性

    ②被IBAction修饰的方法能脱线到storyboard中

    ③使用方式 @property (nonatomic, weak)IBOutlet UILabel *label;

     

    IBOutletCollection:

    ①将界面上一组相同的控件连接到同一个数组中

    #ifndef IBOutletCollection
    #define IBOutletCollection(ClassName)
    #endif

    IBOutletCollection带有一个参数,该参数是一个类名。

    ②通常情况下,我们使用一个IBOutletCollection属性时,属性必须是strong的,且类型是NSArray,如下所示

    @property (strong, nonatomic) IBOutletCollection(UIScrollView) NSArray *scrollViews;

    ③使用此属性要注意两点:

    1>IBOutletCollection集合中对象的顺序是不确定的。我们通过调试方法可以看到集合中对象的顺序跟我们连接的顺序是一样的。但是这个顺序可能会因为不同版本的Xcode而有所不同。所以我们不应该试图在代码中去假定这种顺序。

    2>不管IBOutletCollection(ClassName)中的控件是什么,属性的类型始终是NSArray。实际上,我们可以声明是任何类型,如NSSet,NSMutableArray,甚至可以是UIColor,但不管我们在此设置的是什么类,IBOutletCollection属性总是指向一个NSArray数组。

    IB全称 : Interface Builder

     

    故事版StoryBoard创建ViewController

    ①创建同名storyBoard

    ②连线-选中-勾选(Is Initial View Controller)

    ③初始化方法:

    UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"HKMeViewController" bundle:nil];
    //加载箭头指向的VC
    HKMeViewController * meVC = [storyBoard instantiateInitialViewController ];

    跳转Main.storyboard上的viewcontroller+storyboardID

    SCAnnouncePushController * announcePushVC = [[UIStoryboard storyboardWithName:@"Main" bundle:NSBundle.mainBundle] instantiateViewControllerWithIdentifier:@"publishAnnounce"];
    announcePushVC.team = [NIMSDK.sharedSDK.teamManager teamById:self.session.sessionId];
    [self.navigationController pushViewController:announcePushVC animated:YES];

     

     

     

     

     

  • 相关阅读:
    我的PC必装软件
    NumPy数值计算(1)
    英文标题首字母大写规则
    学渣笔记之矩阵的导数与迹
    测试
    (英文排版测试)Lorem Ipsum
    XeLaTeX插入GB/T 7714-2005规范的参考文献方法
    linux-centos7 下 php 扩展的 编译与安装,以 mysqli 为例
    linux-centos7-vmware 实现与虚拟机共享文件夹宿主机磁盘文件
    linux-centos7 下安装 php-nginx 服务器
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/storyboard.html
Copyright © 2011-2022 走看看