一、簡單的說,IB Xib就是拖控件程式設計,也可以說是可視化程式設計(所見即所得),使用Xib程式設計,相對于純代碼,可以省下大量的敲代碼時間,進而提高程式的開發時間,Xcode 4 之後才可以在工程中直接使用xib程式設計;
使用xib程式設計隻是減輕了MVC中的V設計的工作量,學好Xib有助于了解MVC設計思想;
IB(interface bulider),以後稱為xib,由于xib檔案人能直接識别,是以xib會在編譯後生成.nib檔案(二進制檔案);
Xib檔案中在Xcode 的右側邊框比普通的檔案多出4個頁籤,一共6個;
1.對目前檔案的描述
2.輔助頁籤,主要用來查詢
3.自定義頁籤,可以用來配置和目前Xib檔案相關聯的實體類,如果建立實體類的時候預設勾上also creat xib file,此時預設和實體類自動關聯
4.控件屬性頁籤(優先顯示自己的屬性,在下面顯示它父類的屬性)
5.配置控件的frame
6.檢視和控件相關聯的屬性或者是方法、或者代理,或者是它所遵循的一些協定
file's owner : 指目前xib檔案中View所屬于的視圖控制器,此時view代表這個試圖控制器的根視圖
//這個方法是視圖控制器的指定初始化方法
//如果不給nib檔案名字,系統預設去查詢找跟目前實體類同名的nib檔案名指派這裡
//第二個參數目前程式檔案名,[NSBundle mainBundle] 可以不寫自動查找
- (id)initWithNibName:(NSString
*)nibNameOrNil bundle:(NSBundle
*)nibBundleOrNil{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
}
一個按鈕也可以關聯多個方法,
一個方法可以關聯多個按鈕
————————————————————————————————————————
易錯點:reason: '-[UITableViewController
loadView] loaded the "Xnv-Ot-BAc-view-2Bh-PN-5hY" nib but didn't get a UITableView.'
解決方法:後面跟着的視圖拖錯了,删除修改即可!
__________________________________________________________
StoryBoard故事版:
//如果一個視圖上有多個按鈕點選之後都要跳轉到同一個界面,此時使用在視圖控制器之間建立了segue連線,不過要給這個segue連線加一個辨別
//如果隻有一個按鈕點選後跳轉到下一個界面,此時使用按鈕和視圖控制器之間的連線
//實作button控件中的方法
- (IBAction)handlePush:(UIButton
*)sender {
//通過選擇視圖控制器的連線 segue ,完成頁面之間的跳轉
[self performSegueWithIdentifier:@"jj" sender:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//擷取segue起始端的視圖控制器對象
RootViewController *rootVC = [segue sourceViewController];
//通過segue完成跳轉的時候會觸發這個方法,在跳轉之前觸發,一般用來傳值
//擷取push過去後的視圖控制器對象
DetailViewController
*detailVC = [segue destinationViewController];
//把textField中的内容取出來指派給下一個界面的屬性
detailVC.string
= rootVC.textField.text;//
rootVC.textField.text 相當于 self.textField.text
==============================================================