【问题标题】:Control when a pushed view came back控制推送视图何时返回
【发布时间】:2011-11-29 17:22:51
【问题描述】:

我有一张桌子,当我触摸一个单元格时,它会推送一个详细视图,有时详细视图有一个在 web 视图中播放的音频。我遇到的问题是,当用户播放音频并返回表格时,来自详细视图的音频仍在播放,有没有办法控制视图何时被推回?如果有办法控制我该如何停止音频我应该使用这个 thewebview = nil;?

谢谢

【问题讨论】:

    标签: iphone objective-c ios xcode ipad


    【解决方案1】:

    您的详细视图控制器将在即将离开屏幕时通过调用-viewWillDisappear 得到通知;您可以通过将一些javascript推送到webview或完全处理webview来停止音频(尽管如果视图控制器可能在它仍在导航层次结构中时离开屏幕,您应该确保再次设置它在-viewWillAppear)。

    但是,您通常会期望当您关闭详细视图控制器时,它会被销毁,并且它的子视图(包括 web 视图)也会随之被销毁。音频继续播放的事实表明您可能在此处遇到了内存管理问题。

    【讨论】:

    • 用什么方法可以销毁所有的视图?我在 dealloc 方法中这样做,但它仍在播放声音。
    • -dealloc 真的被调用了吗?
    • 不,你几乎不应该有一个对象释放本身。详细视图是如何显示和隐藏的?通过常规的 UINavigationController?如果是这样,您可能在父视图控制器中过度保留了它。
    【解决方案2】:

    我不知道你为什么要在 webview 中播放音频的真正原因。最好使用 AVFramework,您将可以完全控制正在播放的音频。您可以使用框架播放、暂停、停止等。
    如果您仍想使用 webview,请在 html 文件中添加将停止音频的 javascript 并将其添加到 HTML 并在 viewWillDisAppear 方法中调用 javascript。 欲了解更多信息,请查看网址http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      相关资源
      最近更新 更多