任何幫助表示讚賞!這幾天我正在與沒有結果的戰鬥。內存警告後遞歸調用中的UISpliviewcontroller失敗
場景:
我和iPad應用程序中有SplitViewController顯示2個controllersViews(在右側位置e詳細根)
根允許遞歸導航(樹,可能是幾個明細級別),我每次調用同一個控制器類(UITableView)始終在控制器堆棧中進行調用)。當用戶點擊一個單元格時(左側),詳細視圖(右側)顯示該信息。 請記住,詳細視圖控制器並不總是相同的類:這意味着我要根據必須顯示的信息種類以編程方式分配(和釋放)幾個detailView控制器。
這裏的片段:直到內存警告出現
UIViewController <ItemGenericViewController> *newDetailViewController = [[NSClassFromString(cntrClass) alloc] initWithNibName:cntrXib bundle:nil];
//the detailViewController has been defined in the head section as ItemGenericViewController
//each detailViewController is a subclass of ItemGenericViewController
detailViewController = newDetailViewController;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:detailViewController];
// Update the split view controller's view controllers array.
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, nav, nil];
self.splitViewController.viewControllers = viewControllers;
[nav release];
[viewControllers release];
[detailViewController release];
一切工作正常。
從那一刻起,如果我嘗試顯示一個新的detailViewcontroller,SplitViewController中的RootController和detailController之間的「連接」似乎消失了。結果是:在splitController的右側沒有任何內容出現。 同時,如果我導航到根控制器中的父級別,情況仍然失敗。
每次我在棧中推入一個新的RootController實例(左列)時,我釋放相同的控制器(以節省內存像往常一樣),我懷疑,收到內存警告後,iOS正試圖釋放自己的記憶和我的「歷史」消失,並通過分離控制器也可以實現相關連接。
是一場噩夢;-)
你有什麼建議嗎?
感謝
達里奧
我想你回答,如果你提供的代碼示例會更有幫助。 – 2011-05-10 22:33:54
當然沒問題(正如你所看到的,有史以來的第一條評論,所以......)。在這裏,使用上面的代碼: – Milos 2011-05-11 08:17:06