StoryBoard内动态加入UIViewController

       StoryBoard是IOS5的新特性之一,把程序View的设计弄成了绘画板(storyboard),它让枯燥程序猿们体验了下做一次画家。如果是第一次接触StoryBoard,想用StoryBoard做一个最简单的IOS程序,我建议点传送门,这是一篇不错的入门教程,有比较多的图。

       原先是通过File's Owner载入视图资源,然后通过代码来完成viewController之间的关系,现在StoryBoard通过UIStoryboardSegue(我的翻译是续航器)完成viewController之间关系的构建,就是说原来的通过代码来控制的viewController之间的转换(replace、push、popover、modal),可以可视的通过StoryBoard的“一条线”(实际还是原来的代码完成,现在换成xcode来自动做)来自动完成。

       刚开始使用StoryBoard总会觉得有些不好下手,只会用xcode自动创建的Segues,需要重新整理下StoryBoard的概念,StoryBoard不是一个完全解决方案,即不是必须要用StoryBoard替代所有xib,我可以在StoryBoard创建一个完全独立的viewController,也可以把仅把StoryBoard作为我程序的一部分来使用。说的直白点就是“混搭”,StoryBoard与Xib混搭,与代码(仅指创建ViewController的)混搭,完成xocde在开发效率与灵活性,上手难度与功能全面的平衡。

       现在来说一个具体例子吧,比如我们先创建一个Tabbed Aplicaiton,这里包含两个viewController,一个first view controller ,一个second view controller ,我们想动态的创建第三个viewController , 即一点这个按钮,下面的tab变成三个选项,代码传送门

要使用storyboard上一个独立的view controller,需要一下几个步骤

1 添加一个单独的view controller到storyboard

2 在view controller的inspector中完成identifier的设置


 

3 使用UIStoryboard class装载storyboard资源

4 使用[UIStoryboard instantiateViewControllerWithIdentifier:] 创建一个新的view controller实例

5 将view controller用到所需的地方

   

 UIStoryboard * storyBoard;
    UIViewController *vc;
    //获得UITabBarController
    tb = self.tabBarController;
   viewControllers =[[NSMutableArray alloc] initWithArray: tb.viewControllers];
   storyBoard  = [UIStoryboard 
                                 storyboardWithName:@"MainStoryboard" bundle:nil];
    
       vc = [storyBoard instantiateViewControllerWithIdentifier:@"ThirdViewController"];

 

总体的代码比较简单,所以没有做什么截图,主要分享这个解决问题的思路,还有疑问的童鞋留言吧,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值