2011-02-03 31 views
1

我有一個標籤欄應用程序,我遇到一個奇怪的行爲....當我切換標籤欄,並達到新的視圖控制器有時這些視圖控制器的viewDidLoad被調用...雖然viewDidLoad應該只被第一次調用... 任何人都可以告訴...任何建議?tabbarcontroller的奇怪行爲

+0

你的意思是你什麼時候進去,然後再回來再次進去? – 2011-02-03 13:54:40

回答

2

如果存在低內存警告,則標籤欄控制器將釋放所有不可見的視圖。這意味着您可以多次調用viewDidLoad,因爲視圖已經被卸載。

0

你確定它是viewDidLoad,而不是viewWillAppear?

viewDidLoad中才會被調用在每個UIViewController子類一次,所以如果你的佈局是這樣的:

-UITabBarController: 
    - HappyUIViewController 
    - SadUIViewController 
    - ThirdUIViewController 

然後viewDidLoad中會被調用三次。一次爲HappyUIViewController,一次爲SadUiViewController,等等。

+0

我相信它的viewDidLoad ... – devaditya 2011-02-03 14:41:36

1

您的應用程序內存密集型,可能是因爲您收到內存警告?儘管我沒有體驗過你所描述的行爲,但由於內存不足,可能會由於內存過大而看不見的視圖。當他們下一次被調用時,他們需要重新初始化,調用viewDidLoad

+0

哈,你打我26秒的答案:) – deanWombourne 2011-02-03 14:14:39