? ? ? 最近開發(fā)的ipad項目中,同時存在了兩個splitviewcontroller,因為splitviewcontroller只能作為單獨的viewcontroller又或者是navigationcontroller的rootviewcontroller,所以這2個vc之間的跳轉(zhuǎn),我就用了以下方法解決了:
[self.view.window setRootViewController:vc];
? ? ?一開始用著覺得沒什么問題,后來查內(nèi)存泄漏的時候,發(fā)現(xiàn)如果在這2個vc之間重復(fù)跳轉(zhuǎn)會導(dǎo)致內(nèi)存穩(wěn)定的上漲,而且不會回跌,接下來我把控件尤其是加載網(wǎng)絡(luò)圖片的imageview隱藏掉之后,再看內(nèi)存的運行情況,就猜測到,這樣的setRootViewController讓上一個vc沒有得到釋放,于是改了以下方法:
[UIApplication sharedApplication].keyWindow.rootViewController=vc;
這種方法也沒有讓內(nèi)存得到釋放。
后來在網(wǎng)上搜索良久,也沒有找到合適的方式去解決問題,然后就用了比較投機取巧的方式去解決了問題,而且也沒有內(nèi)存得不到釋放的問題了:
[[SplitViewSingleTon sharedSplitViewSingleTon] showMainPageController];
建立一個單例,把2個vc作為屬性存在于內(nèi)存之中,雖然方法也不是特別好,可是起碼解決了內(nèi)存得不到釋放的問題。
-(void)showAboutController{
? ? ? ?if (!_aboutController) {
? ? ? ? ? ? ? UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
? ? ? ? ? ? ? _aboutController = [storyBoard instantiateViewControllerWithIdentifier:@"AboutViewController"];
? ? ? ? }
[UIApplication sharedApplication].keyWindow.rootViewController=_aboutController;
}