Iphone 为什么我的UIView在重新加载后没有响应?

Iphone 为什么我的UIView在重新加载后没有响应?,iphone,objective-c,Iphone,Objective C,我有一个viewController,它可以弹出带有UIWebView的模式视图。如果我访问一个特别重的页面,我开始收到内存警告,然后父视图被卸载。这一切都很好,但当我关闭模式视图时,我的父母会重新加载(如预期的那样),但不再能够处理任何触摸事件。该应用程序能正确响应方向变化,但无论触摸多少都不会改变任何东西。按钮不起作用,UIWebView不响应滚动(但加载默认网站),等等。就好像有一个透明的UIView覆盖了我的整个窗口。你知道为什么会发生这种情况吗 下面是如何显示模式窗口: Browsin

我有一个viewController,它可以弹出带有UIWebView的模式视图。如果我访问一个特别重的页面,我开始收到内存警告,然后父视图被卸载。这一切都很好,但当我关闭模式视图时,我的父母会重新加载(如预期的那样),但不再能够处理任何触摸事件。该应用程序能正确响应方向变化,但无论触摸多少都不会改变任何东西。按钮不起作用,UIWebView不响应滚动(但加载默认网站),等等。就好像有一个透明的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];
下面是我如何(从模态视图本身)排除它的:

编辑:

在查看视图层次结构时,我没有注意到任何异常情况。以下是我的主视图控制器日志语句。在显示模态视图之前和之后,它们都是相同的:

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] 视图将显示为已调用。 ================parentViewController子视图计数=2 视图[0]是UINavigationTransitionView 子视图计数=0 视图[1]是一个UINavigationBar 子视图计数=2 子视图[0]是UINavigationItemView 子视图[1]是一个UINavigationButton ================自视图子视图计数=3 视图[0]是带有标记[1]的UIWebView 子视图计数=1 子视图[0]是带有标记[0]的UIScrollView 视图[1]是带有标记[2]的UIToolbar 子视图计数=3 子视图[0]是带有标记[0]的UIToolbarTextButton 子视图[1]是带有标记[0]的UIToolbarButton 子视图[2]是带有标记[0]的UIToolbarButton 视图[2]是带有标记[3]的UIView 子视图计数=2 子视图[0]是带有标记[31]的UIActivityIndicatorView 子视图[1]是带有标记[32]的UILabel 编辑#2:
这个问题似乎并没有出现在iPhone上,只是出现在iPad上。我已经检查了我执行if(UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad)的所有地方,这些逻辑似乎都没有任何后果。

我不会以这种方式拒绝;我会改用委托模式:当
BrowsingViewController
想要关闭时,它调用类似于
[delegate browsingviewcontrolleridfinish:self]的东西。这是关闭视图控制器的“常用”方法,并且它还消除了
浏览视图控制器
始终由其父视图控制器以模式显示的要求

BrowsingViewController
BrowsingViewController-iPad
xibs之间有什么区别


我会在“父”视图控制器中进行一些检查,逐步查看其
视图和所有子视图,以查看整个视图层次结构上是否有任何覆盖(如您所说)的内容阻止了触摸事件。

您如何解除模态视图控制器?如何显示模态视图控制器?在这里显示一些代码可能会有所帮助。XIB之间的差异可以忽略不计。事实上,我在iPad上使用iPhone特定版本进行了测试,仍然能够重现问题。该问题已在检查视图层次结构时更新。找到问题。它可以追溯到我是如何拒绝模态视图的。我的ViewDidDisplay方法是检查模态视图,如果它存在,让它显示另一个“堆叠”模态。问题是,这是在前一个被取消后被调用的。我无法理解为什么这没有在iPhone上表现出来,但我为糟糕的编程感到羞愧! 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]