如何解决NativeScript:使用自定义的Objective-C导入的类到NativeScript中的Xcode项目中
基本上,我已经有一些Objective-c类,并且我想在NativeScript projet中使用它们。目前,我已将这些文件添加到Xcode项目目标中,并且希望能够从nativeScript js调用我的Objective-C代码。我已经阅读过该文档,但我听不懂。似乎太复杂了。基本上,我目前想要做的就是能够通过调用类似的东西来呈现我的自定义视图控制器
const vc = MyCustomViewController.alloc.initWithNibName("xib file")
page.frame.ios.controller.present(vc,true,nil)
我有义务为此创建一个插件吗?我有义务使用我的Objective-c类在Xcode中构建一个框架,然后导入该框架吗?
解决方法
所以我发现了。
实际上,您首先需要将本机iOS代码编译到框架中。根据文档,所有的类都必须继承NSObject,并且所有的函数都必须标有@objc,以便在使用swift编写时公开给Objective-c Nativescript。您还将注意到,在框架中,捆绑包不是主要捆绑包。在此示例中,您将看到如何从框架中检索捆绑软件并从中加载xib。
然后,您需要将框架文件添加到Nativescript插件。为此,您要将框架添加到插件的iOS文件夹yourPlugin/platform/iOS/yourFramework.framework
。
然后,您需要将插件添加到您的应用中。您可以使用下一个命令行添加本地插件。注意路径以/ src文件夹结尾。
tns plugin add /path/to/yourplugin/src
现在,您甚至可以在不导入它们的情况下调用本机函数和类。当然,这仅适用于iOS。如果您在android上运行应用,则调用这些方法将崩溃。
要在Nativescript端显示此viewController,您将需要调用以下代码。顺便说一下,您可以在其他地方找到文档来获取对当前page
或frame
对象的引用。
const controller = page.frame.ios.controller
const vc = IOMediaViewController.create()
vc.modalPresentationStyle = UIModalPresentationFullScreen
controller.presentViewControllerAnimatedCompletion(vc,true,null)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。