我正在使用Worklight 6.0。我用本机ios组件(环境)创建了一个混合应用程序。我需要从web导航到本机页面。为此我使用的是一个有方法的插件
WL.NativePage.show('FirstViewController', backFromNativePage, params);
我能够从网络导航到本地和原生到网络。从FirstController,我正在呈现SecondViewController和应用程序流继续。在一个Controller中,我添加了原生CAMERA,我保存并在FinalViewController中显示所有捕获的图像,我再次从FinalViewController呈现FirstViewController。 FirstViewController我要回到网页。使用WL.NativePage.show加载FirstViewController(这是第一个本地页面)。
现在的问题是,我无法从FirstViewController呈现SecondViewController。我正在获得提示
"Attempt to present <CameraViewController: 0x1d5e1e70> on <FirstScreenViewController:
0x1e88bec0> which is already presenting <CameraViewController: 0x1e8938b0>".
我不知道哪里出错了。请帮我解决这个问题。
答案 0 :(得分:0)
所以你的流程是
web -> VC1 -> VC2 -> more VCs -> finalVC -> VC1 -> using WL API to return to web page
看起来你的导航堆栈有点圆形而不是线性的,这通常使事情变得复杂。在创建新实例之前,您不会丢弃先前实例化的视图控制器。虽然从技术上讲这对大多数ViewControllers来说可能没问题,但是由于需要独占的硬件访问,有些人可能会遇到问题。相机。
底线 - 我建议您在不再需要视图控制器时确保丢弃视图控制器,例如:通过使您的屏幕导航堆栈线性或手动确保它们被销毁。