【发布时间】:2013-10-21 16:19:48
【问题描述】:
我正在努力解决这个问题:
情况:
我有一个非常基本的应用程序,一个 MMDrawerController 里面有一个 tableview,当一个项目被按下时它链接到一个 uitabbarcontroller。在第一页里面是一个嵌入的 youtube UIWebView,当按下它时会播放一个 youtube 视频全屏。
这就是正在发生的事情。
- 按视频,全屏打开并开始播放
- UITabBar viewWillDisappear 触发
- 根 MMDrawerController viewWillAppear 触发
- 视频结束
- 用户回到他们开始的 UITabBar 并且一切似乎都很好即使它之前“消失”了
现在我将布尔值放在两个视图的 ViewWillAppears / Disappears 中,以检查应用程序的当前状态。通常它是 0,1 表示表已打开或 uitabbar 控制器已打开。视频结束后,他们显示 0,0。如果我按回导航键,我会在从任何位置导航时收到“开始/结束外观转换的不平衡调用”。
现在如果我听 youtube 视频的开头然后开火:
[self.navigationController popToRootViewControllerAnimated:NO];
我可以防止发生不平衡的呼叫,并且用户可以继续浏览应用程序。然而,他们无法观看视频,他们只是被退回了一个视图。
在 3 中也是如此。我可以在两个控制器上检查 0、0,然后几乎重新启动整个应用程序。但这不是一个好的解决方案。
预期结果:
用户可以按下uiwebview,观看视频,然后返回到上次中断的地方。如果他们回击导航控制器,则不会出现不平衡的外观过渡。
我尝试了很多东西,比如
[self.navigationController poptoViewController:...]
从我此时收集的信息来看,它与在根控制器中加载的全屏视频有关(因此它的 viewWillAppear 在 3 时触发。)但之后我没有正确“放置”回来。类似的东西
[self.navigationController heyTheUserIsPresentlyIn:self]
我可以在视频消失后打电话给我非常好。
非常感谢任何帮助,尽管我已经为此工作了好几个小时,如果我是个白痴,任何指向书籍中文档或章节的链接都会有很大帮助。谢谢。
【问题讨论】:
标签: ios objective-c uiwebview uinavigationcontroller