多个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 ...
随机推荐
- MyBatis核心配置文件模版
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLI ...
- PHP 高并发、抢票、秒杀 解决方案
对于抢票.秒杀这种业务,我说说自己对这种高并发的理解吧,这里提出个人认为比较可行的几个方案:方案一:使用队列来实现可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧比如有100张 ...
- hdu----(1671)Phone List(Trie带标签)
Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- XX宝面试题——JS部分
1.sessionStorage .localStorage 和 cookie 之间的差别 sessionStorage 和 localStorage 是HTML5 Web Storage API 供 ...
- EF Code First 导航属性 与外键
一对多关系 项目中最常用到的就是一对多关系了.Code First对一对多关系也有着很好的支持.很多情况下我们都不需要特意的去配置,Code First就能通过一些引用属性.导航属性等检测到模型之间的 ...
- bat产生随机数并复制文件及生成文件列表
有这样一个场景:我需要将同一个文件复制为上千个文件,并且文件名应为随机数.为了简单起见,不想写程序,直接写个BAT来,方便,简单,易用: 1. 搞定用BAT产生32位随机数,存为变量并使用,保存以下代 ...
- uva 1210
#include<iostream> #include<cstring> using namespace std; + ; bool notprime[MAXN];//值为fa ...
- 1800: [Ahoi2009]fly 飞行棋
#include<cstdio> #include<iostream> using namespace std; ],n,ans; int main() { scanf(&qu ...
- linux下安装vtune_amplifier_xe_2015_update4
说明: linux系统: CentOS 6.0 Vtune版本: 2015 安装过程: 1.下载vtune_amplifier_xe_2015_update4.tar.gz(到官网去下载 ...
- centos下cmake安装
步骤一.安装gcc等必备程序包(已安装则略过此步,用gcc -v检测) yum install -y gcc gcc-c++ make automake 步骤二.安装wget (已安装则略过此步) y ...