通过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用到所需的地方

   

[cpp]  view plain copy print ?
  1. UIStoryboard * storyBoard;  
  2.    UIViewController *vc;  
  3.    //获得UITabBarController  
  4.    tb = self.tabBarController;  
  5.   viewControllers =[[NSMutableArray alloc] initWithArray: tb.viewControllers];  
  6.   storyBoard  = [UIStoryboard   
  7.                                 storyboardWithName:@"MainStoryboard" bundle:nil];  
  8.      
  9.       vc = [storyBoard instantiateViewControllerWithIdentifier:@"ThirdViewController"];  

 

你可能感兴趣的:(【开发技术】IOS)