带有 UIViewController 的插件
Posted
技术标签:
【中文标题】带有 UIViewController 的插件【英文标题】:Plugin with UIViewController 【发布时间】:2015-07-31 16:07:06 【问题描述】:有人可以向我解释一下 Cordova ios 插件的生命周期吗?
特别是,我有一个我正在尝试开发的插件,其中包含一个UIView
(以及相关联的UIViewController
)。
如何从我的扩展 CDVPlugin
类中获取 Cordova UIView
,以便我可以将我的插件作为子视图添加到它(它是这样工作的吗?)。
我想暂时在我的 Cordova 应用程序顶部显示我的 UIView
,然后将其关闭,返回到我的 JS/html 应用程序。
【问题讨论】:
【参考方案1】:如果你想在cordova webview上展示整个UIViewController(全屏),你可以这样做
[self.viewController presentViewController:yourViewController animated:YES completion:nil];
例子:
Camera plugin
InAppBrowser plugin
如果您只想在 cordova webview 上添加一个视图,您可以这样做
[self.viewController.view addSubview:yourView];
例子:
MapKit plugin
不同之处在于,第一种方法显示整个视图控制器,全屏,第二种方法显示可以具有您想要的大小和位置的视图,如果您不使其具有与设备相同的大小屏幕用户将在其下看到您的cordova webview
【讨论】:
太棒了-谢谢!你有任何插件的任何例子。两者有什么区别? 编辑示例和差异 如果你 googlepresentViewController
它会显示 Apple 文档页面,Apple 文档页面可以显示 Objective-C 和 Swift 的信息。 developer.apple.com/reference/uikit/uiviewcontroller/…【参考方案2】:
请参考上面@jcesarmobile 给出的答案
Plugin with UIViewController
对于像我这样无法确定如何定义 yourViewController 的不成熟 iOS 开发人员,请按照以下代码进行操作
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController * yourViewController = [storyboard instantiateViewControllerWithIdentifier:@"iController"] ;
[self.viewController presentViewController: yourViewController animated:YES completion:nil];
其中 Main 是故事板文件名,iController 是在 Main.Storyboard 文件中定义的 viewController 的故事板标识符
请为@jcesarmobile 给出的上述答案投票
【讨论】:
以上是关于带有 UIViewController 的插件的主要内容,如果未能解决你的问题,请参考以下文章
嵌套的 UIViewController 需要推送到根 UINavigationController
在现有的 UINavigationController 中插入 UIViewController
UIViewController 作为 Apple PodCast 应用程序 [关闭]