【发布时间】:2011-06-03 21:24:20
【问题描述】:
大家好...我有一个视图控制器 (A),它在某些操作中分配 init 是另一个视图控制器 (B),然后将 B 的视图作为子视图添加到其视图中。所以现在 ViewController B 的视图是 ViewController A 的子视图。我遇到的问题是,如果我只是从 A 中删除 B 的视图,它似乎仍然存在。视图 B 包含 Web 视图,当我在 webView 上加载视频时,即使从视图控制器 A 的视图中删除视图后,我仍然可以听到视频??
如何销毁视图控制器 B 并从 A 中删除其子视图?我发现这很棘手,因为我并没有真正将它推送到我可以从中弹出的导航控制器的堆栈中......我希望这是有道理的,如果不是请说,我会尝试澄清。
非常感谢
朱尔斯
-(void)showNewsWebView:(int)index {
NewsWebViewController *myWebView = [[[NewsWebViewController alloc] initWithNibName:@"NewsWebViewController" bundle:nil]autorelease];
//setup webview with request etc
[[self.view.superview superview] addSubview:myWebView.view];
myWebView.alpha = 0.
[UIView beginAnimations:@"test" context:nil];
[UIView setAnimationDuration:.3];
myWebView.view.alpha = 1.;
[UIView commitAnimations];
}
//called after delegate callback from webviewcontroller
- (void)newsWebViewDismissedView:(NewsWebViewController *)controller {
[UIView beginAnimations:@"test" context:nil];
[UIView setAnimationDuration:.3];
controller.view.alpha = 0.0;
[self performSelector:@selector(removeView:) withObject:controller.view afterDelay:.5];
[UIView commitAnimations];
}
-(void) removeView:(UIView *)view {
[view removeFromSuperview];
view = nil;
}
【问题讨论】:
-
请提供简化代码。抛开这一点,你为什么不只是推动和弹出?
标签: iphone uiwebview uiviewcontroller