2011-02-03 27 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