一 于StoryBoard相关的类、方法和属性

1 UIStoryboard
 // 根据StoryBoard名字获取StoryBoard+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(nullabßle NSBundle *)storyboardBundleOrNil;// 获取指定StoryBoard的第一个视图控制器- (nullable __kindof UIViewController *)instantiateInitialViewController;// 获取指定StoryBoard的标识符为identifier的视图控制器- (__kindof UIViewController *)instantiateViewControllerWithIdentifier:(NSString *)identifier;
2 UIStoryboardSegue
 // 标识符@property (nullable, nonatomic, copy, readonly) NSString *identifier;// 源视图控制器@property (nonatomic, readonly) __kindof UIViewController *sourceViewController;// 目的视图控制器@property (nonatomic, readonly) __kindof UIViewController *destinationViewController;
3 UIStoryboardUnwindSegueSource
4 UIStoryboardPopoverSegue
5 UIViewController
 // 处理标识符为identifier的StoryBoardSegue- (void)performSegueWithIdentifier:(NSString *)identifier sender:(nullable id)sender NS_AVAILABLE_IOS(5_0);

二 动态加载StoryBoard

AppDelegate.m 动态加载StoryBoard,TARGETS设置中Deployment Info 项Main Interface删除main

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];self.window.backgroundColor = [UIColor whiteColor];[self.window makeKeyAndVisible];UIViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateInitialViewController];self.window.rootViewController = vc;return YES;
}

三 StoryBoard->StoryBoard切换和传值

1 视图切换

方法一:

方法二:

// StoryBoard 跳转到 StoryBoard
- (IBAction)StoryBoardCodePushButton:(id)sender
{// 已经连线的seg[self performSegueWithIdentifier:@"Detail" sender:self];
}
2 视图传值
// UIViewController 方法 用于处理视图控制器之间的传值
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{if ([sender isKindOfClass:[UIButton class]]){// 方法一,使用KVC给B 也就是目标场景传值UIViewController *destinationController=[segue destinationViewController];[destinationController setValue:@"StoryBoard Segue Push" forKey:@"name"];}else{// 方法2,使用属性传值,需导入相关的类.hDetailViewController *bController=[segue destinationViewController];bController.name=@"StoryBoard Code Push";}
}

四 StoryBoard->Code视图控制器切换和传值(Xib视图控制器原理一样)

self视图控制器是用StoryBoard创建的

// StoryBoard 跳转到 Code
- (IBAction)StoryBoardtoCodeVCPush:(id)sender
{CodeViewController *vc = [[CodeViewController alloc] init];vc.name = @"StoryBoard to CodeVC Push";[self.navigationController pushViewController:vc animated:YES];
}

五 Code视图控制器->StoryBoard切换和传值(Xib视图控制器原理一样)

self视图控制器是用Code(Xib)创建的

- (void)barButton
{// 从Code视图控制器跳转到StoryBoard中的视图控制器 (Xib原理一样)UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];DetailViewController *vc = [story instantiateViewControllerWithIdentifier:@"VC"];vc.name = @"Code to StoryBoard Push";[self.navigationController pushViewController:vc animated:YES];
}

完整工程代码下载 官方Storyboard例子下载

六 参考

AppDelegate动态加载StoryBoard

StoryBoard 视图切换和传值相关推荐

  1. 关于在VS2005环境下无法从源视图切换到设计视图的解决方案

    今天在使用VS2005 Coding时,突然出现无法从源视图切换到设计视图的问题,这个急死人了,今天的任务可就完成不了啊.刚开始以为是源代码有语法错误,排查了非常久,没发现语法错误.这是怎么回事呢?试 ...

  2. tableau必知必会之使用参数操作在同一视图切换指标

    前言 我们之前分享过两个"在同一视图切换图表"的例子:如何在同一视图中切换不同图表和使用计算实现同一视图切换相同分析维度的图表. 前者利用容器的方式,可以实现图表在视图物理位置的切 ...

  3. Oracle VM VirtualBox下各种视图切换

    在一次操作变换VirtualBox下视图时,莫名菜单项全不见了,后通过热键的选择方式更改回来了,实属庆幸啊,废话不多说,在这里说一下VirtualBox下视图切换的快捷键: 里面有个Host键,注意这 ...

  4. iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

    iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍) 本来仅仅是打算介绍一下addChildViewController这种方法的,正好今天朋友去换工作面试问 ...

  5. Visual Studio 2008在设计视图和代码视图切换的快捷键F7

    使用VS2008的快捷键F7可以在设计器视图和代码视图进行切换,相当于"视图"菜单 ->"代码"(或者"设计器").在设计器视图可以按 ...

  6. MFC视图切换大全总结

    单纯视图之间的切换 单文档多视图切换是我在学习MFC中遇到的一个老大难问题,在今天总算是一一破解了.我觉得视图切换分为三个等级,第一是在未切分窗格的情况下切换视图类:第二是在分割窗格的一个窗格内实行视 ...

  7. 用Angular制作单页应用视图切换动画

    视图,动画 单页应用(Single Page Web Application)往往有一个基本的要点,那就是把多个视图集成到一个网页内,然后去控制这些视图的显示和隐藏.此外,视图的切换动作几乎都会引入动 ...

  8. ios 视图切换翻页效果

    2019独角兽企业重金招聘Python工程师标准>>> 本文写的是视图切换,涉及到的内容有 1.实现代码添加Navigation Bar  Toolbal: 2.实现在Navigat ...

  9. IPhone多视图切换

    处理IPhone多个view切换是我们常遇到的问题,接下来有个比较实用的方法: 而且还附有创建空项目,内存告急处理和动画效果的实现! 具体步骤: 1.创建一个空的项目,然后添加一个ViewContro ...

最新文章

  1. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)
  2. Android应用程序键盘(Keyboard)消息处理机制分析(26)
  3. js修改地址栏url_不同寻常的地址栏过渡
  4. python基本类型
  5. android滚动视图实例,android实现自定义滚动条
  6. python调用r语言函数_Python 中使用R语言
  7. 数学建模——典型相关分析(CCA)及spss操作过程
  8. linux代码折叠,Ubuntu中gedit中插件的安装之代码折叠插件
  9. matlab图像身高测量,基于Kinect景深图像的快速身高和体重测量方法
  10. word树状分支图_word树状图怎么做分支
  11. windows清理_一个Windows系统下好用的内存清理工具
  12. MySQL数据库 sql语句及其含义
  13. 2021年一次比较奇葩的 AWS 面试
  14. Docker - 重新启动关闭的容器
  15. 更正:复旦大学工研院计算机学硕不是第一年招生
  16. 如何解决电脑不停自动下载安装软件问题?
  17. 中科佑铭机器人_一个月连开四个班!犀灵机器人口碑炸裂,值得信赖!
  18. PhpStorm打不开了怎么解决
  19. 疫情期间2020应届生找工作经历
  20. 28个linux命令行神器

热门文章

  1. 使用docker制作hexo镜像
  2. 一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案
  3. Windows/Linux TCP Socket网络编程简介及测试代码
  4. 【C++】模板函数的声明和定义必须在同一个文件中
  5. wamp找不到服务器,WampServer服务器多站点配置后打不开phpMyAdmin的解决办法
  6. 普渡大学计算机硕士申请条件,普渡大学计算机与信息技术理学硕士研究生申请要求及申请材料要求清单...
  7. linux数据库什么意思,Linux系统中的数据库命令是什么
  8. android 弹出fragment,Android中ViewPager获取当前显示的Fragment
  9. 山东大学计算机学院预推免,山东大学计算机科学与技术学院(专业学位)计算机技术保研...
  10. linux查看接口名,在linux下 怎么查看网络接口的名字? 网络接口的名字英文是什么呀?...