慎用ViewCtrl的跳轉!
搞iphone開發的,應該都知道MVC,頂半邊天的UIViewCtrl,區分好Modle、View、Controller各自的作用。這里要提醒的是,勿濫用UIViewCtrl的跳轉。
從一個Controller跳轉到另一個Controller時,一般有以下2種:
1、利用UINavigationController,調用pushViewController,進行跳轉;這種采用壓棧和出棧的方式,進行Controller的管理。調用popViewControllerAnimated方法可以返回。
2、利用UIViewController自身的presentModalViewController,進行跳轉;調用dismissModalViewControllerAnimated方法可以返回。
然而這2種UIViewCtrl的跳轉,其實並沒有釋放原有的Controller(可以在delloc輸出日志或利用Instruments查看程序內存)。所以要小心使用,一般有以下3個注意點:
1、小心死循環或死胡同,如:有2個Controller,第一個跳轉調用第二個,第二個在某些特殊情況下又會調用和展現第一個Controller,這樣就有可能導致死循環或占用太多內存而退出程序。
2、生物鏈不要太長。所謂生物鏈就是像下面這種形式:
ctrl1->ctrl2->ctrl3->ctrl4->ctrl5...
應該換成:
ctrl1->ctrl2
ctrl1->ctrl3
ctrl1->ctrl4
ctrl1->ctrl5
...
3、Controller中的View太多或圖片太多,盡量不要將它壓棧,應該盡量用完就釋放它(這種出現的可能性比較大,我之前也遇到過,一開始還以為是內存泄漏)