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

   

  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"];  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章