多个storyboard开发应用程序,封装.bundle和.a不用xib使用storyboard!!!
一,封装.bundle和.a使用xib的方式前面已经说过了,具体方式不再赘述,简单介绍于下:
静态库加.h bundle:删plist,改sdk,加xib 简称psx三步
引用库的项目,加.a .bundle 编辑edit scheme
二,storyboard出现的比较晚,封装的教程如今全网仅此一家,方便开发!
首先创建静态库,方法都和以前的一样,就把xib换成storyBoard就行了,难就难在怎么引用上,下面介绍于下:
在跟控制器上声明一个属性一个方法,为了调用的时候更方便
//比如A控制器要跳转过来,就把A的实例赋值给此source属性然后调用 startViewController方法就可以跳转过来
@property (nonatomic,strong)UIViewController *sourceViewController;
//启动该视图控制器,显示天气视图,为sourceViewController赋值之后就调用该方法
-(void)startViewController;
然后实现方式如下:
-(void)startViewController
{
NSBundle *bundle=[NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"WeatherDataLibResources" withExtension:@"bundle"]];
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"WeatherStoryboard" bundle:bundle];
[self.sourceViewController presentViewController:[storyboard instantiateInitialViewController] animated:YEScompletion:^{
}];
}
三,在引用的地方先引入头文件,然后实例化,设置参数,方式如下:
WeatherViewController *weatherViewController=[[WeatherViewController alloc]init];
weatherViewController.sourceViewController=self;
[weatherViewController startViewController];
使用中遇到问题 Unknown class <class name> in interface Builder file.
遇到这个问题的人一时半会解决不了这个问题,真他妈蛋疼,我弄了一天多
解决:
1,xcode优化机制制造的这个问题,在任意一个类中调用一下这个类就行,比如打log或直接[类 class];
2,在project中的link flag加 -all_load
另外一个奇葩问题
[self.sourceViewController presentViewController:[storyboard instantiateInitialViewController] animated:YEScompletion:^{}];
这个方法可以显示视图,但是没有navigationBar!
还是直接使用push方法才能解决
在静态库中操作时经验终结:
使用模拟器.a
单例作为入口
built setting (other link) -objc (解决不是别类的bug)
[self presentViewController:controller animated:YES completion:^{
}];没有navigationBar可以显示,要换成 [self.navigationController pushViewController:qucontroller animated:YES];
多个storyboard开发应用程序,封装.bundle和.a不用xib使用storyboard!!!的更多相关文章
- iOS- Could not find a storyboard named 'Main' in bundle NSBundle
1.删掉工程中main.storyboard 后要删除plist文件中对应的键值,否则会报如下错误: Could not find a storyboard named 'Main' in bundl ...
- Could not find a storyboard named 'Main' in bundle NSBundle
转自:http://www.cnblogs.com/ygm900/p/3836580.html 1.删掉工程中main.storyboard 后要删除plist文件中对应的键值,否则会报如下错误: C ...
- 使用 Eclipse C/C++ Development Toolkit 开发应用程序
使用 Eclipse C/C++ Development Toolkit 开发应用程序 (转) 来自http://blog.csdn.net/favory/article/details/189080 ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 Excel Services中新功能
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 Excel Services中新功能 从S ...
- UI5-文档-2.3-使用SAPUI5工具为Eclipse开发应用程序
用于为简单用例开发应用程序.用于Eclipse的SAPUI5应用程序开发工具提供向导来支持您以一种简单的方式创建应用程序.使用application project向导,将自动创建包含视图和控制器的必 ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 总结
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 总结 SP2013新的server端Off ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 WOPI和新的Office Web Apps Server
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 WOPI和新的Office Web Apps Server ...
- 微信小程序封装storage(含错误处理)
这次给你们安利的是微信小程序封装storage,先说下微信官方的 wx.getStorage({ key:"", success: function (res) { }, fail ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务 机器翻译服务也是继Wor ...
随机推荐
- hdu---(1054)Strategic Game(最小覆盖边)
Strategic Game Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- png-24在ie6中的几种透明方法
转载 http://www.cnblogs.com/jikey/archive/2013/03/13/2957168.html 由于游戏类官网在页面背景和装饰人物的设计上追求画丽且与游戏风格想匹配,这 ...
- java代码抓取网页邮箱
实现思路:1.使用java.net.URL对象,绑定网络上某一个网页的地址2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象3.通过Ht ...
- for循环的嵌套——7月24日
练习一:输入一个正整数,用for循环嵌套求阶乘的和 //输入一个正整数,求1!+2!+....+n! 用for循环嵌套 Console.Write("请输入一个正整数:"); ...
- java.lang.ThreadGroup.enumerate
java.lang.ThreadGroup.enumerate(Thread[] list) 方法复制该线程组及其子组中的所有活动线程到指定的数组. 声明 以下是java.lang.ThreadGro ...
- js基础之弹性运动(四)
一.滑动菜单.图片 var iSpeed=0;var left=0;function startMove(obj,iTarg){ clearInterval(obj.timer);//记得先关定时器 ...
- Oracle 过程控制语句整理
分支语句/循环语句 v_case ) :; begin then dbms_output.put_line('条件成立'); elsif then then dbms_output.put_line( ...
- NSDate的运算
NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是不可改变的. 如 ...
- WCF如何通过契约加编码方式调用
WCF采用基于契约的服务调用方法,通过System.ServiceModel.ChannelFactory<TChannel>直接创建服务代理对象. 创建服务代理 public stati ...
- 在其他页面调用 Discuz 7.2 BBS 论坛会员登录信息
require_once './bbs/include/common.inc.php'; $discuz_uid 是用户ID $_DSESSION是用户所有信息