[英]loadview method is called several times
我以編程方式創建我的視圖。 如果我不放置loadView
方法,則該應用程序運行良好。 但是,當我添加如下的loadView
方法時:
- (void)loadView
{
NSLog(@"loadView is called");
}
我發現這種方法被調用了很多次! 最后,該應用程序崩潰了。
我不知道為什么loadView
方法被調用了這么多次。
有人可以幫忙嗎? 非常感謝!
在某些時候,預計loadView
會填充視圖控制器的view
屬性。 view屬性是延遲加載的(查看調用堆棧,您將看到一個名為_loadViewIfNeeded
的方法)。
如果loadView
沒有創建視圖,則每次訪問.view
屬性時,視圖控制器都會再次調用loadView
,以嘗試延遲加載視圖。 在某些時候,一切都會出錯,因為視圖控制器需要一個視圖。 如果您從您的自定義的loadView 中訪問self.view,你會得到一個無限循環。
從文檔中:
您可以覆蓋此方法,以便手動創建視圖。 如果選擇這樣做, 請將視圖層次結構的根視圖分配給view屬性 。 您創建的視圖應該是唯一的實例,並且不應與任何其他視圖控制器對象共享。 您對此方法的自定義實現不應調用super。
在加載視圖中,您要調用[self loadView]
而不是[super loadView]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.