[英]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.