Storyboard文件
- 在iOS5之前,蘋果使用xib文件來描述UI界面
- 在iOS5之后,蘋果采取了更加強大和先進的storyboard文件來描述界面(Xcode5是基于iOS7的)
- 左邊的箭頭表明:程序一啟動就會顯示箭頭所指的界面
常見的UI控件
UILabel – 文本標簽
- 文本標簽的作用是顯示一串固定的文字

UIButton – 按鈕
- 按鈕的作用是:監(jiān)聽用戶的點擊事件,在用戶點擊后做出響應(yīng)

UITextField – 文本輸入框
- 文本輸入框可以彈出鍵盤,讓用戶輸入文本內(nèi)容

- 這個設(shè)置表明:UITextField彈出的是數(shù)字鍵盤

View和ViewController
UIView
- 屏幕上能看得見摸得著的東西就是UIView,比如屏幕上的按鈕、文字、圖片
- 一般翻譯叫做:視圖\控件\組件
- UIButton、UILabel、UITextField都繼承自UIView
- 每一個UIView都是一個容器,能容納其他UIView(比如右圖中的整個鍵盤是一個UIView,里面容納很多小格子的數(shù)字UIView)

父控件和子控件
在“加法計算器”中,最后面那塊白色的全屏的東西也是一個UIView
-
白色的大UIView中容納了很多小的UIView
- 在白色的大UIView中,容納了6個小UIView(1個UIButton、2個UITextField、3個UILabel)
- 這種情況下,我們可以稱白色的大UIView為6個小UIView的父控件(父視圖),6個小UIView都是白色大UIView的子控件(子視圖)

UIViewController
- 手機上自帶的“設(shè)置”中有很多的界面,點擊對應(yīng)的選項可以跳到下一個界面

每一個新的界面都是一個新的UIView,在切換過程中,涉及到了:
(1)UIView的創(chuàng)建和銷毀
(2)UIView跟用戶的交互(處理UIView內(nèi)部每一行的點擊)其實,每當顯示一個新界面時,首先會創(chuàng)建一個新的UIViewController對象,然后創(chuàng)建一個對應(yīng)的全屏UIView,UIViewController負責管理這個UIView
UIViewController就是UIView的大管家,負責創(chuàng)建、顯示、銷毀UIView,負責監(jiān)聽UIView內(nèi)部的事件,負責處理UIView與用戶的交互
UIViewController內(nèi)部有個UIView屬性,就是它負責管理的UIView對象 :
@property(nonatomic,retain) UIView*view;嚴格來講,下圖箭頭所指的應(yīng)該是一個UIViewController對象,里面白色的界面僅僅是UIViewController內(nèi)部的UIView屬性

- 箭頭所指UIViewController的真實類型是MJViewController

程序的運行流程
- 綜合分析,可以得出程序的簡單運行流程:
1.讀取Main.storyboard文件
2.創(chuàng)建箭頭所指的MJViewController對象
3.根據(jù)storyboard文件中描述創(chuàng)建MJViewController的UIView對象
4.將UIView對象顯示到用戶眼前
監(jiān)聽按鈕點擊
- 現(xiàn)在已經(jīng)知道:應(yīng)該由ViewController來監(jiān)聽“計算”按鈕的點擊
- 換句話說,ViewController應(yīng)該提供一個方法出來,當用戶點擊“計算”按鈕時,就調(diào)用這個方法來通知ViewController按鈕被人點了
- ViewController就在這個方法中實現(xiàn)想做的任何事情,比如計算2個文本輸入框內(nèi)值的和
IBAction和IBOutlet
- IBAction
- 從返回值角度上看,作用相當于void
- 只有返回值聲明為IBAction的方法,才能跟storyboard中的控件進行連線
- IBOutlet
- 只有聲明為IBOutlet的屬性,才能跟storyboard中的控件進行連線
設(shè)置程序啟動時加載的storyboard
- 這個設(shè)置表明:程序啟動時會加載Main.storyboard

退出鍵盤的兩種方式
- resignFirstResponder
- 當叫出鍵盤的那個控件(第一響應(yīng)者)調(diào)用這個方法時,就能退出鍵盤
- endEditing
- 只要調(diào)用這個方法的控件內(nèi)部存在第一響應(yīng)者,就能退出鍵盤