簡體   English   中英

UIViewController loadView方法-分配對象的范圍

[英]UIViewController loadView method - scope of alloc'd objects

我正在以編程方式在視圖控制器的loadView方法中創建視圖。 如下:

-(無效)loadView {

 HPSFormView* viewForThisController = [ [ HPSFormView alloc ] initWithFrame:CGRectZero ] ; viewForThisController.controller = self; // Set a reference back to this controller so the View knows who to delegate stuff to when > adding controls self.view = viewForThisController; // Set the view for this controller to be the main menu view 

}

我針對三對不同的視圖控制器和視圖采用了這種技術。 我將視圖控制器推到UINavigationController堆棧上。 每個視圖都包含一個使用推按鈕。 如下:

-(void)buttonTapped:(id)sender  {
    HPSFormController* formVC = [ [ HPSFormController alloc ] initWithNibName:nil bundle:nil ];
    [(UINavigationController*) self.view.window.rootViewController pushViewController:formVC animated:YES]; 
}

我在viewDidLoad中沒有任何代碼-實際上,我的視圖控制器中完全沒有它。

一切正常,但是當我在iOS模擬器中執行“模擬內存警告”時,應用崩潰。 我認為問題在於將視圖定義為loadView中“本地”變量的方式。

誰能告訴我我的loadView看起來不錯,還是有必要不同地定義loadView以避免無效引用等。

非常感謝。

問題在於該視圖持有對控制器的引用。 當視圖被卸載時,控制器引用超出范圍,所以加油!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM