簡體   English   中英

loadview方法被多次調用

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

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