當我編程,沒有一個筆尖,我的印象是,我需要調用的loadView初始化我認爲,像這樣下:正確使用的loadView和viewDidLoad中使用的UIViewController無碎粒/ xibs
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nil bundle:nil];
if (self) {
// Custom initialization
[self loadView];
}
return self;
}
(我。已設置nibNameOrNil =零,因爲沒有筆尖)
然後,我設置的觀點,這樣的:
- (void) loadView {
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)];
[self viewDidLoad];
}
這是盡一切viewDidLoad中其他。
我仍然不確定是否應該以這種方式調用loadView和viewDidLoad。他們沒有自動調用。
什麼是混淆是對UIViewController類引用文檔中:
的loadView討論
你永遠不應該直接調用此方法。視圖控制器在請求視圖屬性時調用 此方法,但當前爲零。 如果您手動創建視圖,則必須覆蓋此方法,並使用它來創建視圖。如果使用Interface Builder創建視圖並初始化視圖控制器,即使用initWithNibName:bundle:方法初始化視圖 視圖,請直接設置nibName和 nibBundle屬性,或者同時創建視圖和視圖 控制器在界面生成器中 - 那麼你不能重寫這個 方法。
所以,我不明白如果我不應該直接調用它,如何調用loadView。
此方法的默認實現查找有效的筆尖 信息並使用該信息加載關聯的筆尖文件。 如果未指定nib信息,則默認實現會創建一個普通的UIView對象並將其設置爲主視圖。
我不明白這是如何工作的 - 創建一個痛苦UIView。
如果重寫此方法,以手動創建你的意見,你 應該這樣做並分配層次的根視圖到 視圖屬性。 (您創建的視圖應該是唯一的實例,並且不應該與其他視圖控制器對象共享 )。
如果您想對視圖執行任何額外的初始化,請在viewDidLoad方法中執行 。在iOS 3.0及更高版本中,您還應該使用 覆蓋viewDidUnload方法,以釋放對該視圖或其內容的任何引用。
好吧,到目前爲止它沒有說如何調用viewDidLoad。因此,對於viewDidLoad中:
viewDidLoad中討論
視圖控制器加載其 關聯的視圖到存儲器後,此方法被稱爲。 無論視圖是存儲在nib文件中,還是以編程方式在loadView方法中創建 ,無論是 ,都會調用此方法。此方法通常用於對從nib文件加載的視圖執行其他初始化步驟 。
叫什麼?
由於這些方法沒有在我的代碼中自動調用,我只能認爲我必須自己調用它們。但是我仍然沒有從文檔中清楚地理解這是正確的。
嗨@Draco請從這個問題開始賞金...我仍然遭受這種情況? – Vishal16 2014-06-11 09:30:02