iOS 开发不用 Storyboard 让人湿的不行的文字吗

Posts - 100,
Articles - 1,
Comments - 328
Windows Phone & Windows中混迹的程序猿
11:50 by 王祖康, ... 阅读,
iOS项目中可以将同一业务流程的页面归置到一个StoryBoard中,项目中必然会包含多个StroryBoard,可以利用跳转,实现项目的不同业务流程页面间的跳转切换。
实现思路:
1,项目(Project)中添加两个StoryBoard;
2,在第一个StoryBoard中,将原有Scene删除掉,重新添加一个NavigationController,然后在任意View Controller Scene中添加一个Button,并添加按钮的TouchUpInside事件;
3,TouchUpInside事件中添加如下类似代码:
1 UIStoryboard *secondStroyBoard=[UIStoryboard storyboardWithName:@"Storyboard2" bundle:nil];
3 UIViewController *test2obj=[secondStroyBoard instantiateViewControllerWithIdentifier:@"test2"];
5 [self.navigationController pushViewController:test2obj animated:NO];
简单分析一下代码:
首先需要指定UIS
接下来实例化一个UIViewController对象(其中&test2&为ViewController的StoryboardId);
最后利用self.navigationController跳转到指定的StoryBoard页面。iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard
招聘信息:
代码示例:本系列文章中,我们将一起认识、了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的时间、场景下做出最佳的选择,提升开发效率,增强程序的可维护性。本文作为开篇,我们将一起尝试驾驭强大的 Storyboard。StoryBoard 的本质StoryBoard 是苹果在 iOS 5 中引入的新技术方案,目的是给纷繁复杂的 nib、xib 们一个温暖的家,让他们之间的关系更直观地展示出来,并提供了一种新的页面间跳转方式 segue。StoryBoard 的本质是一个 XML 文件,描述了若干窗体、组件、Auto Layout 约束等关键信息。示例文件:但是,我们应该认识到一个更重要的本质:使用 StoryBoard 的 iOS 项目均以初始化 StoryBoard 文件作为整个程序的初始化入口,UIViewController 类是由于被 StoryBoard 绑定而初始化,从而开始运行的。从下面两个地方可以找到蛛丝马迹:奇怪的 bug初学 iOS 开发的时候,如果使用了 StoryBoard,大家可能遇到过这个奇怪的 bug,页面全黑:如果大家跟我一样纯靠找资料自学而没有人教的话,一定出现过死活找不到原因而新建一个项目的尴尬情况吧 o(╯□╰)o,其实秘密在这里:这表示这个窗体是此 StoryBoard 的初始窗体的意思,这样 APP 在启动以后,会先启动主 StoryBoard,主 StoryBoard 会启动它的初始窗体,初始窗体启动跟他绑定的类,这样 APP 就启动完成了。多 StoryBoard 最佳实践 1.0 版是我第一个上架的项目,只用了初始化项目时建立的那唯一的 Main.storyboard,里面有二十几个窗体,在 Xcode 里每次点击打开都要等五秒才能完全渲染完毕,而且 Segue 线交错纵横,非常凌乱。这显然不是个好的组织方式。我现在正在重写的托福喵第二版已经采用了多 StoryBoard 的解决方案,把一些独立的窗体组合放到一起使用一个 StoryBoard 进行组织,比如登陆注册的几个窗体,考试界面的几个窗体,关于我们的几个窗体等。下面我们将一起学习如何使用多 StoryBoard。新建第二个 StoryBoard如下图:给 Second.storyboard 拖入一个 View Controller:如何调用 Second.storyboard 中的窗体?首先,编译项目,我们得到如下警告:这个警告的意思是,这个窗体没有入口,无法被触达。如何让他能够被触达?两种方式:设置为该 StoryBoard 的初始窗体:给该窗体设置一个 StoryBoard ID:能够被触达之后,让我们用代码调用他们:① 作为初始窗体let&vc&=&UIStoryboard(name:&"Second",&bundle:&nil).instantiateInitialViewController()&as!&UIViewController
self.navigationController?.pushViewController(vc,&animated:&true)② 设置了 StoryBoard IDlet&vc&=&UIStoryboard(name:&"Second",&bundle:&nil).instantiateViewControllerWithIdentifier("First")&as!&UIViewController
self.navigationController?.pushViewController(vc,&animated:&true)当然,也可以用 self.presentViewController 调用他们。查看效果Auto LayoutAuto Layout 跟 StoryBoard 是天作之合,配合默契,可以大幅提高 UI 开发效率,一次性做出适合所有屏幕尺寸的 UI。关于 Auto Layout 的详细使用方法大家可以参考
系列文章。
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
点击量10840点击量7029点击量5241点击量4397点击量4388点击量4358点击量4321点击量4292点击量3699
&2015 Chukong Technologies,Inc.
京公网安备89iOS 开发不用 Storyboard 不行吗_百度知道
iOS 开发不用 Storyboard 不行吗
我有更好的答案
说需要,根线,乱.公司高层能懂iOS,所随程序员技术,程序员擅哪面,二家阅读代码.根线,些公司喜欢用.于团队发言,用storyboard显妥,维护.些公司喜欢storyboard,用哪面.我认,用纯代码挺,些简易界面,浪费间,建议用xib
采纳率:68%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。主题 : 在AppDelegate中如何加载Storyboard里的界面
级别: 新手上路
可可豆: 76 CB
威望: 76 点
在线时间: 17(时)
发自: Web Page
在AppDelegate中如何加载Storyboard里的界面&&&
在AppDelegate中&
self.TestViewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
& & [self.window addSubview:self.TestViewController.view];
有TestViewController.xib 这样是没有问题的
但是我现在用的是Storyboard
用initWithNibName:@"...."就不行了
请问有什么办法能够将Storyboard中的View添加进Window
Storyboard这样添加进去了
UIStoryboard *storyBoard=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];&
& & self.window.rootViewController=[storyBoard instantiateInitialViewController];&
求助啊 纠结了半天了 谢谢
级别: 新手上路
可可豆: 137 CB
威望: 87 点
在线时间: 112(时)
发自: Web Page
额,遇到同样问题。你的问题解决了么???
级别: 新手上路
可可豆: 12 CB
威望: 12 点
在线时间: 2(时)
发自: Web Page
me too!
哥们解决了没有?
级别: 新手上路
可可豆: 10 CB
威望: 10 点
在线时间: 0(时)
发自: Web Page
UIStoryboard *storyBoard=[UIStoryboard storyboardWithName:@&Storyboard& bundle:nil];
DetailViewControllerdetailViewController *
&= [storyBoard instantiateViewControllerWithIdentifier:@&DetailViewController&];
这样就好了
级别: 新手上路
可可豆: 2 CB
威望: 2 点
在线时间: 23(时)
发自: Web Page
给力,多谢!用这个方法解决了
级别: 侠客
UID: 421577
可可豆: 920 CB
威望: 711 点
在线时间: 342(时)
发自: Web Page
没必要啊,直接把Appdelegate不修改任何东西,不用初始化window,直接运行就会进入storyboard
有cocoachina真好
级别: 侠客
UID: 403363
可可豆: 723 CB
威望: 533 点
在线时间: 123(时)
发自: Web Page
storyboard中没有把那个viewcontroller设置为InitialViewController吧,试一下勾选那个控制器的InitialViewController属性
级别: 新手上路
UID: 431872
可可豆: 148 CB
威望: 106 点
在线时间: 576(时)
发自: Web Page
我一般这么写先在storyboard 的自定义viewcontroller 属性storyboardID 填写一个id:viewcontroller初始化ViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@&viewcontroller&];self.window添加就OK了
级别: 新手上路
可可豆: 16 CB
威望: 16 点
在线时间: 42(时)
发自: Web Page
3楼的做法好像不行啊!在AppDelegate里用UIStoryboard *storyBoard=[UIStoryboard storyboardWithName:@&Storyboard& bundle:nil];拿到的storyBoard,与在任意一个ViewController里拿到的对象不是同一个实例,可以把两处拿到的storyBoard打印出来的看下
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版iOS 开发不用 Storyboard 不行吗_百度知道
iOS 开发不用 Storyboard 不行吗
我有更好的答案
为我之前有在Window平台使用Visual Studio开发的经验,我可以很自信的说,Interface Builder非常不好,它能被设计师使用,就像HTML相对于web一样,至少与VS比较是这样。Visual Studio之所以更优秀,其原因之一在于标记式语言(XAML)
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 属羊的绝对不行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信