StoryBoard內動態加入UIViewController

來源:互聯網
上載者:User

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

 

總體的代碼比較簡單,所以沒有做什麼,主要分享這個解決問題的思路,還有疑問的童鞋留言吧,


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.