动态加载故事storyboard
第一种方法:
ViewControllerB *vcB = [self.storyboard instantiateViewControllerWithIdentifier:@"Name of View Controller B"];
[vcB setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[viewControllerA presentModalViewController:(UIViewController *)vcB animated:YES];
接上一篇,通过学习上一篇,我们知道,XIB文件可以动态加载视图,同样功能强大的StoryBorad,更能出色地完成这一重任。此外其加载视图的方式,有了更多的选择,颇具有灵活性。
在storyBorad中可以结合XIB 文件使用,当然也可以动态地加载XIB 文件视图,这个与在XIB文件中动态加载是一样的,不熟悉的,可以看看我的上一篇博文。
直接进入正题,创建一个

勾选StoryBorad

//创建如下图所示的界面文件,注意最后一个并没有连接Segue,我们要手动地在程序中动态地加载这个界面文件

首先:我们先看一下XIB文件和storyborad中,一个UIViewControlelr 在其中显示的形态有什么不同,以及一些设置。
先看XIB中

再看StoryBorad中

细心的人会发现,两个有一些细微的差别,刚开始学习的时候,没有注意到,或者是,注意到了,也不知道怎么使用,在storyborad中将NIB Name 替换成了Indentifier ,并且增加了一个 Initial Sence 选项,这个大家都明白.对于
Indentifier,就是我们今天动态加载视图中的一个重要属性标识。
好了,前期准备完毕,在storyborad中动态加载视图,用到的一个类是显而易见
UIStoryboard Class Reference
Getting a Storyboard Object
+ storyboardWithName:bundle: //获得特定的storyBorad
Instantiating Storyboard View Controllers
– instantiateInitialViewController //返回初始化场景的controller
– instantiateViewControllerWithIdentifier: //返回指定的controller
相信这回大家该恍然大悟了,我们使用– instantiateViewControllerWithIdentifier:就可以获得我们想要的任何UIViewController ,从而可以动态地加载。要注意在那个Indentifier选项中要标记好名字。
//简单演示一下,抛砖引玉吧,
- (IBAction)shoudong:(id)sender {
NSLog(@"function %s line=%d",__FUNCTION__,__LINE__);
UIViewController *con=[[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"dongtai"]; //获得控制器
[self.navigationController pushViewController:con animated:YES]; // 加载控制器
}
点击动态加载按钮,看正确显示我们的下一个视图,这里只是demo ,实际可以根据需要在特定场景加载特定的视图,十分灵活,功能也十分强大。

总结:通过使用Interface Builder动态地加载视图,更加熟悉了IB的使用,加深了印象,同时也提高了程序处理的灵活性。为以后探索更加高级的应用打下了基础。不断研究,不断总结,就会更快地进步。如有问题,欢迎留言交流。
写在后面:此时动态加载视图,注意和连线push的区别,使用过storyBorad的一看就会看出区别的。对比较,多分析。
IStoryboard *storyBoard=[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
DetailViewController
detailViewController *
= [storyBoard instantiateViewControllerWithIdentifier:@"DetailViewController"];
这样就好了
动态加载故事storyboard的更多相关文章
- WPF动态加载3D 放大-旋转-平移
原文:WPF动态加载3D 放大-旋转-平移 WavefrontObjLoader.cs 第二步:ModelVisual3DWithName.cs public class ModelVisual3DW ...
- Vue 动态加载组件
为什么要动态加载呢?而不是一次性加载呢? 一次性?你能保证你拿的内容不多,那从性能方面说还是OK的.否则,就该什么时候用,就什么时候取. 得出这想法,源于前几天上班赶产品的故事: A组件是父亲,B组件 ...
- WPF动态加载3D 放大-旋转-平移
第一步:新建WavefrontObjLoader.cs using System; using System.Collections.Generic; using System.Windows; us ...
- Xib设计UITableViewCell然后动态加载
转自: http://www.2cto.com/kf/201202/120764.html (注:环境Mac OS X Lion 10.7.3 + Xcode 4.2.1 + iOS SDK 5.0. ...
- js动态加载css和js
之前写了一个工具类点此链接里面含有这段代码,感觉用处挺多,特意提出来 var loadUtil = { /* * 方法说明:[动态加载js文件css文件] * 使用方法:loadUtil.loadjs ...
- geotrellis使用(二十三)动态加载时间序列数据
目录 前言 实现方法 总结 一.前言 今天要介绍的绝对是华丽的干货.比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么能够对比同一区域不同时间的数据情况,采用 ...
- Ext JS 如何动态加载JavaScript创建窗体
JavaScript不需要编译即可运行,这让JavaScript构建的应用程序可以变得很灵活.我们可以根据需要动态从服务器加载JavaScript脚本来创建和控制UI来与用户交互.下面结合Ext JS ...
- Ext动态加载Toolbar
在使用Ext的GridPanel时候,有时候需要面板不用重新加载而去更新Store或者Toolbar,Store的方法有很多,例如官方api给我们提供的Store.load(),Store.reLoa ...
- Android动态加载框架汇总
几种动态加载的比较 1.Tinker 用途:热修复 GitHub地址:https://github.com/Tencent/tinker/ 使用:http://www.jianshu.com/p/f6 ...
随机推荐
- SQL必知必会笔记(1)
去SQL AXDB 中Query数据 Open the SQL > Connect > Select AXDB > new Query select REFID, ITEMID, R ...
- 在探索中感悟,在摸索中前进--ET之快递法
飞测说:最近很多朋友问如果没有需求文档,我该怎么测试?我自然想起了探索测试,今天来说说自己在探索测试路上的一点点感悟-------快递测试法,让我们在探索中感悟,在摸索中前进-- 快递测试法,是从ET ...
- 慕课网-安卓工程师初养成-4-14 Java 循环语句之多重循环
来源:http://www.imooc.com/code/1497 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行 ...
- mysql数据导入
1.windows解压 2.修改文件名,例如a.txt 3.rz 导入到 linux \data\pcode sudo su -cd /data/pcode/rm -rf *.txt 4.合并到一个文 ...
- MFC读取XML文件并解析
现在经常会对XML文件进行操作,怎么在MFC下去读和解析XML文件呢?直接上代码: 首先得等在stdafx.h中加入这句,以引入MSXML命名空间 #import <msxml3.dll> ...
- Duilib学习笔记《06》— 窗体基类WindowImpBase
在前面的例子中我们发现,窗口都是继承CWindowWnd.INotifyUI,然后重载相关函数去实现.显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等… ...
- openstack openrpc
- Loadrunner:安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist
[问题现象] 安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist: [解决办法] 手动安装缺少的组件,LR安装包中已自带该组件,为何不自动捕捉异常去获取该自带的组件去安 ...
- 谈谈 React.js 的核心入门知识
近来React.js变得越来越流行,本文就来谈一谈React.js的入门实践,通过分析一些常用的概念,以及提供一些入门 的最佳编程编程方式,仅供参考. 首先需要搞懂的是,React并不是一个框架,Re ...
- Android IOS WebRTC 音视频开发总结(七)-- 基于浏览器的开发
前面写的一系列总结都是讲webrtc如何下载,编译,开发的,有些人可能有点云里雾里了,WEBRTC不是用来搞跨浏览器开发的吗,怎么我讲的这些跟浏览器扯不上任何关系,其实看看下面这个架构图,你就明白了, ...