2010-09-04 100 views
2

我有一個viewController,用UIWebView彈出一個模態視圖。如果我訪問一個特別重的頁面,我開始獲取內存警告,隨後父視圖被卸載。這一切都很好,但是當我關閉模態視圖時,父母重新加載(按預期),但不能再處理任何觸摸事件。該應用程序正確響應方向更改,但沒有任何觸摸會改變任何內容。按鈕不起作用,UIWebView不響應滾動(但加載默認網站)等。就好像有一個透明的UIView覆蓋我的整個窗口。任何想法,爲什麼這可能發生?爲什麼我的UIView在重新加載後沒有響應?

下面是如何顯示模式窗口:

BrowsingViewController* controller = [[BrowsingViewController alloc] 
    initWithNibName:UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ?  
    @"BrowsingViewController-iPad" : @"BrowsingViewController" 
     bundle:nil initialURL:[[request URL] absoluteString]];  
[self presentModalViewController:controller animated:YES];  
[controller release]; 

以下是我關閉它(從模式的看法本身):

- (void) onCloseTouch 
{ 
    [self.parentViewController dismissModalViewControllerAnimated:YES]; 
} 

編輯:

通過走出去視圖層次結構,我沒有注意到任何規範。這是我的主視圖控制器的日誌語句。他們我的兩個模式的看法之前和之後我顯示是相同的:

viewWillAppear called. 
=============== parentViewController subviews count=2 
View [0] is a UINavigationTransitionView 
subview count=0 
View [1] is a UINavigationBar 
subview count=2 
     subview [0] is a UINavigationItemView 
     subview [1] is a UINavigationButton 
=============== self views subviews count=3 
View [0] is a UIWebView with tag [1] 
subview count=1 
     subview [0] is a UIScrollView with tag [0] 
View [1] is a UIToolbar with tag [2] 
subview count=3 
     subview [0] is a UIToolbarTextButton with tag [0] 
     subview [1] is a UIToolbarButton with tag [0] 
     subview [2] is a UIToolbarButton with tag [0] 
View [2] is a UIView with tag [3] 
subview count=2 
     subview [0] is a UIActivityIndicatorView with tag [31] 
     subview [1] is a UILabel with tag [32] 

編輯#2: 這個問題似乎並沒有出現在iPhone,iPad上只。我已經檢查了我正在執行if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)的所有地方,並且這種邏輯似乎沒有任何結果。

+0

你是如何解散模態視圖控制器?你怎麼顯示模態視圖控制器?在這裏顯示一些代碼可能會有幫助。 – 2010-09-04 00:35:03

回答

1

我不會以這種方式解僱;我會用代理模式代替:當BrowsingViewController想要關閉時,它會調用類似[delegate browsingViewControllerDidFinish:self];的東西。這是關閉視圖控制器的「常用」方式,它也消除了總是由其父視圖控制器以模態方式呈現的要求。

BrowsingViewControllerBrowsingViewController-iPad xibs之間有什麼區別?

我會在「父」視圖控制器中進行一些檢查,逐步檢查其view以及所有子視圖,以查看是否有任何重疊(正如您所說)覆蓋阻止觸摸事件的整個視圖層次結構。

+0

xib之間的差異可以忽略不計。事實上,我使用iPad上的iPhone特定版本對其進行了測試,並且仍然能夠重現此問題。該問題已在檢查視圖層次結構時進行了更新。 – 2010-09-04 02:41:36

+0

發現問題。它追溯到我如何解散模態觀點。我的viewDidAppear方法檢查模態視圖,如果它存在,讓它顯示另一個「疊加」模態。問題是,在前一個被解僱之後,這個問題纔得到解決。爲什麼這不是在iPhone上體現出來的,這讓我感到惋惜,但對於糟糕的編程而言,我感到羞恥! – 2010-09-04 04:00:59

相關問題