- 創(chuàng)建窗口
- 設(shè)置窗口的根控制器
- 登錄控制器
- alloc/initWithNibName:bundle:
- 創(chuàng)建xib,用xib描述登錄控制器的view
- command + d 直接就可以復(fù)制一個新的控件
-
如果想要用xib去描述控制器的view必須要做兩件事情
- 綁定類兽泣,告訴xib去描述哪一個控制器的view
- file‘s owner
- class: loginViewController
- 連線羡儿,告訴控制器xib當(dāng)中哪一個view去描述控制器的view
- 選中file's owner 右擊連線
- 綁定完類之后才能連線
- 綁定類兽泣,告訴xib去描述哪一個控制器的view
- 如果initWithNibName:bundle:
- 如果指定了名稱,就去加載指定名稱的xib
- 如果指定的名稱為nil,默認(rèn)就去加載跟他相同名稱的xib(LoginViewController.xib)
- 如果沒有跟他相同名稱的xib,會去加載跟他相同名稱告组,去掉controller的xib(LoginView.xib)
- 如果alloc/init
- init方法底部調(diào)用了initWithName:bundle:
- 創(chuàng)建控制器的同時抒抬,創(chuàng)建xib置侍,內(nèi)部已經(jīng)綁定好類,連好線沾乘,加載相同名稱的xib
- 登錄控制器
- 顯示窗口
loadView
- 凡是在類擴(kuò)展里聲明的屬性帶*的默認(rèn)都是沒有值怜奖,必須要創(chuàng)建(數(shù)組、控件)
- 只要重寫了loadView就說明控制器的view要自己創(chuàng)建
- loadView的默認(rèn)做法
- 當(dāng)前控制器是否在storyboard中加載意鲸,如果是從storyboard加載烦周,就從storyboard中創(chuàng)建view,給當(dāng)前控制器賦值
- 如果不是從storyboard中加載,就去看怎顾,當(dāng)前控制器有沒有xib來描述view,如果有读慎,就會從xib當(dāng)中創(chuàng)建view
- 如果也沒有xib描述,那么他就會創(chuàng)建一個空的view
- loadView當(dāng)控制器view第一次使用的時候調(diào)用
- 在控制器的view的get方法中調(diào)用
- 控制器的view是懶加載
//只要重寫了loadView就說明控制器的view要自己創(chuàng)建
- (void)loadView{
UIView * view = [UIView alloc]init]
self.view = view;
}