storyboard的使用

2018-03-25  本文已影响20人  coderhlt

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;
}
上一篇下一篇

猜你喜欢

热点阅读