【发布时间】:2010-09-04 00:26:41
【问题描述】:
我有一个 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];
以下是我关闭它的方式(从模态视图本身):
- (void) onCloseTouch
{
[self.parentViewController dismissModalViewControllerAnimated:YES];
}
编辑:
通过视图层次结构,我没有发现任何异常。这是我的主视图控制器的日志语句。在我展示我的模态视图之前和之后它们是相同的:
viewWillAppear 被调用。
=============== parentViewController 子视图数=2
View [0] 是一个 UINavigationTransitionView
子视图计数=0
View [1] 是一个 UINavigationBar
子视图计数=2
子视图 [0] 是一个 UINavigationItemView
子视图 [1] 是一个 UINavigationButton
=============== 自己的视图子视图数=3
View [0] 是带有标签 [1] 的 UIWebView
子视图计数=1
subview [0] 是带有标签 [0] 的 UIScrollView
View [1] 是一个带有标签 [2] 的 UIToolbar
子视图计数=3
子视图 [0] 是带有标签 [0] 的 UIToolbarTextButton
子视图 [1] 是带有标签 [0] 的 UIToolbarButton
子视图 [2] 是带有标签 [0] 的 UIToolbarButton
View [2] 是一个带有标签 [3] 的 UIView
子视图计数=2
子视图 [0] 是带有标签 [31] 的 UIActivityIndicatorView
子视图 [1] 是带有标签 [32] 的 UILabel
编辑#2:
这个问题似乎不会出现在 iPhone 上,只是 iPad 上。我检查了我执行if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 的所有地方,但这些逻辑似乎都没有任何后果。
【问题讨论】:
-
你是如何关闭模态视图控制器的?你是如何显示模态视图控制器的?在这里显示一些代码可能会有所帮助。
标签: iphone objective-c