「这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战」
关于Storyboard
Storyboard 是最先在 iOS5 中引入的一项新特性,它的出现使得开发人员大幅缩减构建App用户界面所需的时间
关于Storyboard的加载方式
-
一般在新建工程后,我们便可以看到Xcode会默认加载 Storyboard,但是在实际开发中,我们更常用的是自己新建 Storyboard,所以,这里主要讲手动创建控制器时,加载 Storyboard 的方式
-
通常在新建的项目中,我们首先要将Xcode加载 Storyboard 去掉
-
关于 Storyboard 创建控制器
第一种:
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [sb instantiateInitialViewController]; self.window.rootViewController = vc; [self.window makeKeyAndVisible]; 复制代码
第二种:
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"WAKAKA"]; self.window.rootViewController = vc; [self.window makeKeyAndVisible]; 复制代码
关于UIStoryboardSegue
在 Storyboard 中,用来描述界面跳转的线,都属于 UIStoryboardSegue
的对象(简称:Segue
)
Segue的属性
- 唯一标识(
identifier
) - 来源控制器(
sourceViewController
) - 目标控制器(
destinationViewController
)
Segue的类型
-
自动型(点击某控件,不需要进行某些判断可直接跳转的)
-
手动型(点击某控件,需要进行某些判断才跳转的)
-
手动设置 Segue 需要设置
使用
perform
方法执行对应的 Segue//根据Identifier去storyboard中找到对应的线,之后建立一个storyboard的对象 [self performSegueWithIdentifier:@"showinfo" sender:nil]; 复制代码
如果需要做传值或跳转到不同的UI,需要在这个方法里代码实现
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ //比较唯一标识 if ([segue.identifier isEqualToString:@"showInfo"]) { //来源控制器 UINavigationController *nvc = segue.sourceViewController; //目的控制器 ListViewController *vc = segue.destinationViewController; vc.info = @"show"; } } 复制代码