美文网首页
storyboard的使用

storyboard的使用

作者: coderhlt | 来源:发表于2018-03-25 12:58 被阅读20次

    storyboard是用来描述软件界面的。程序一启动,就会加载 Main.storyboard 文件,会创建箭头所指的控制器,并且显示控制器所管理的软件界面 。

    一、自定义一个Storyboard

    1. 新建一个Storyboard


      屏幕快照 2018-03-25 上午11.47.07.png

    2、从右侧拖拽一个View Controller到storyboard里面


    屏幕快照 2018-03-25 上午11.51.24.png

    3、将Storyboard上拖的控制器和工程里的控制器绑定在一起


    屏幕快照 2018-03-25 上午11.52.47.png
    在右侧红色区域修改自己需要绑定的控制器,这里绑定的是ViewController.
    4.让箭头指向ViewController
    屏幕快照 2018-03-25 下午12.01.48.png

    勾选右侧Is Initial ViewContoller后箭头就会指向Viewcontoller了

    5、配置工程让系统开始加载的是test.storyboard


    屏幕快照 2018-03-25 下午12.08.29.png

    然后拖拽几个UI元素到控制器里,command+R运行就好了。

    二、拖线连接

    连接Storyboard的ViewController和工程里的ViewContoller,拿到所需要的事例对象和监听UI控件的事件。
    1、切换到双面板.


    屏幕快照 2018-03-25 下午12.16.19.png

    点击红色框里的第二个双环按钮就可以切到双面板,第一个多线条按钮是退出双面板。(快捷键是:先用鼠标选中左侧的test.storyboard,再按option+command+return就直接切换到双面版,command+return退出双面板)

    屏幕快照 2018-03-25 下午12.25.51.png

    2、拖线
    (1)属性和UI元素连线
    声明一个为IBOutlet的属性


    屏幕快照 2018-03-25 下午12.31.20.png

    拖线方式一:从属性向Button拖线
    拖线方式二:按着control键从Button向属性拖线。
    拖线方式三:选中Button右击如下图


    w
    从New Referencing Outlet向属性拖线
    拖线方式四:先不用声明属性,按着control键从UButton向I@interface拖线,会弹出一个如下的 小窗口补充自己需要定义属性的名字然后点击Connect即可 屏幕快照 2018-03-25 下午12.43.59.png

    拖线完成后,我们就可在控制里用self.btn进行访问属性
    (2)方法和UI元素连线
    声明一个返回值为IBAction的方法
    方式一、二、三同属性。
    方式四:


    屏幕快照 2018-03-25 下午12.50.19.png

    如同按着control键从按钮向上(控制器)拖线会弹出如下


    屏幕快照 2018-03-25 下午12.53.55.png
    然后找到控制器里定义的那个方法点击就行了。
    方式五:先不用声明属性,按着control键从UButton向
    @implementation ViewController拖线。
    屏幕快照 2018-03-25 下午12.57.13.png
    三、加载Storyboard的方式
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
       /*
        加载info.plist. 判断info.plist当中有没有指定Main.如果有Main.storyboard,会先创建一个UIWindow  ,然后会把Main.storyBaord当中剪头指向的控制器设置为UIWindow的rootViewController,并将根控制器的view添加到view让其显示出来
        */
        //如果没有:
        
        self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
        
        //2.加载工程里的Main.storyboard
        UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];// 在这里传nil 也就是默认加载[NSBundle mainBundle]
        
        //加载箭头指向的那个控制器
        UIViewController *vc=[storyboard instantiateInitialViewController];
        /*[storyboard instantiateViewControllerWithIdentifier:@"Main"]
         加载的是具有Stroyboard ID为main那个控制器
        */
        self.window.rootViewController=vc;
        
        [self.window makeKeyAndVisible];
        
        return YES;
    }
    

    相关文章

      网友评论

          本文标题:storyboard的使用

          本文链接:https://www.haomeiwen.com/subject/pbehcftx.html