1. StoryBoard到底是什麼東西?
如上圖所示,就是我們一直在說的Storyboard,創建項目的時候選擇Single View Application
模板,我們就可以默認得到一個控制器類ViewController.h/.m和一個Main.storyboard文件,Main.storyboard文件就是的故事板(Storyboard),在這裏可以操作我們的幾乎所有的控制器。
Storyboard中存在的不僅僅是View那麼簡單的概念,而是放置了一個ViewController的概念。也就是說,我們在可視化頁面中,除了可以在頁面中操作視圖之外,我們還可以在頁面中操作控制器的一些設置等等。
Storyboard就是把很多的Xib文件添加到了一個文件中,讓我們可以在一個文件中操作所有視圖,更加的方便和快捷。同時,我們還可以設置頁面之間的聯繫。展示程序頁面之間的邏輯關係
不同的是,Xib中代表的僅僅是View,Storyboard中代表的是控制器
2. StoryBoard與xib相比較的優勢與劣勢?
Xib的和純代碼開發相比起來優勢已經很明顯了:方便、快速、直觀。。。可以幫我們提高工作效率,節省開發時間。
Storyboard和xib比起來,除了擁有Xib擁有的優勢外,它還有自己的優勢。
方便、快速、直觀
顯示各個控制器之間的順序關係
快速設置控制器的一些屬性
3. 如何使用以及單獨創建Storyboard文件
cmd + N,選擇User Interface->StoryBoard
創建之後如何讓程序去加載呢,在這裏設置下:選中項目->General->Main Interface,在Main Interface輸入storyboard文件名
設置好了之後,程序啓動後就會自動加載我們的Stroyboard文件了
4. Storyboard中那麼多控制器,哪個是根視圖控制器?
Storyboard中可以包含很多的視圖控制器,那到底哪個是根視圖控制器呢?注意,這裏不需要我們去寫代碼聲明。只需要勾選就OK了。
視圖控制器左側的小箭頭就表示當前的爲根視圖控制器,設置的位置就是右側Is Initial View Controller的複選框。
小箭頭也可以直接拖動,可以從一個控制器拖到另一個控制器上,這樣就更改了根視圖控制器。
5. 添加新的視圖控制器和關聯
從右下角直接找到View Controller拖到Stroyboard,這樣就創建了一個視圖控制器,但是需要和ViewController.h/.m進行關聯,
在Class中輸入對應的控制器的名稱,這樣就進行了關聯,怎麼樣,比Xib簡單吧。
6. 使用Segue
Segue,就是我們在storyboard中看到的那些線,相對應的類是UIStoryboardSegue,segue的作用就是可以表示出控制器之間的跳轉關係,並且,是可以直接實現跳轉的。
在一個控制器中拖入一個UIButton,然後按住Control按鈕,從button上拖到另外一個控制器中,
鬆手後可以看到彈出這樣一個HUD:
最下面的兩個,push和modal大家都認識,一個是導航控制器的跳轉頁面,另一個是模態的效果。大家也可以發現,已經被deprecated掉了,所以我們不應該再去使用。
解釋下最新的:
show: 相當於push,但是有一個好處:如果沒有導航控制器,跳轉的方式就是模態,如果存在導航控制器,就是push的效果
show detail: 相當於modal
我們選擇show,這樣可以看到一條線:
這條線就是segue,代表了轉場。(segue的使用後期再做詳細介紹)
這樣搞定之後,我們就實現了頁面之間的跳轉,都不需要寫代碼。
7. 設置代理
如果我們添加了tableView到視圖中,我們不需要寫代碼,可以直接設置代理:
按住Control,從tableView拖到對應的控制器上,鬆手後會看到:
可以看到dataSource和delegate,把兩個都選中就代表我們設置了tableView的代理爲當前的視圖控制器。選中的代理項會在前面出現小點點,就比如dataSource
8. 給控制器添加導航控制器或者標籤控制器
選中一個控制器,然後去菜單欄:Editor->Embed In->Navigation Controller
我們選中控制器可以將當前控制器裝載到控制器中,當我們選中幾個View的時候,我們也可以裝載到View或者ScrollView中,非常的方便。
9. 這個東西真棒
Storyboard除了可以提高我們的開發效率之外,後期介紹了Auto Layout之後,你會愛上Storyboard的。
建議大家在個人項目中使用Storyboard,
團隊項目的時候使用Xib,
總之就是儘量使用可視化編程,提高我們的工作效率。