2010-11-17 70 views
0

我有一些代碼在我的iPod Touch上正常工作,運行一些4.0系列iOS以及iOS SDK 4.1附帶的模擬器。但是當我在運行iOS 3.1.2的iPhone 2上調用[UIViewController dismissModalViewController:]時,它會得到無限遞歸,最終會崩潰。iOS 3.1.2 [UIViewController dismissModalViewControllerAnimated:]創建無限遞歸

我有一個視圖控制器,打開一個表視圖,用戶選擇一個文檔打開。在選擇文檔時,我的表視圖控制器的委託調用父視圖控制器dismissModalViewController方法。我認爲這是因爲我正在關閉其代碼正在運行的視圖控制器。

dismissModalViewController記錄在iOS 2.0及更高版本中可用。

如何關閉從其自己的代碼打開的UIViewController?

+0

發佈無限遞歸調用堆棧片段 – coneybeare 2010-11-17 00:39:05

+0

coneybeare,我認爲這將有助於調用[NSObject performSelectorOnMainThread:withObject:waitUntilDone:]但它沒有。 – 2010-11-17 00:43:31

+0

#6662 \t 0x30bf8b18在 - [UIView的(層次)_makeSubtreePerformSelector:withObject:withObject:copySublayers:] #6663 \t 0x30bf8b18在 - [UIView的(層次)_makeSubtreePerformSelector:withObject:withObject:copySublayers:] #6664 \t 0x30bf8bf0在 - [的UIView(層次)_makeSubtreePerformSelector:withObject:] #6665 \t 0x30bf8688在 - [UIView的(內部)_addSubview:定位:對於relativeTo:] #6666 \t 0x30c03868在 - [UIView的(層次)insertSubview:atIndex:] #6667 \t 0x30ce076c在 - [UIWindowController轉換:fromViewController:toViewController:target:didEndSelector:] – 2010-11-17 00:44:36

回答

0

我想我的問題可能是一些先前代碼的堆損壞。調試的一種方法是評論先前代碼的片段,以查看錯誤是否會消失或回來。幾乎立即我發現我在當前視圖控制器的父控制器上調用dismissModalViewControllerAnimated:。爲什麼在iOS 4.x中有效我不知道。我面臨的問題是我有兩個需要同時關閉的模式對話框,我無法工作,但這是一個不同的問題。