微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NativeScript:使用自定义的Objective-C导入的类到NativeScript中的Xcode项目中

如何解决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。

enter image description here

然后,您需要将框架文件添加到Nativescript插件。为此,您要将框架添加到插件的iOS文件夹yourPlugin/platform/iOS/yourFramework.framework

然后,您需要将插件添加到您的应用中。您可以使用下一个命令行添加本地插件。注意路径以/ src文件夹结尾。

tns plugin add /path/to/yourplugin/src

现在,您甚至可以在不导入它们的情况下调用本机函数和类。当然,这仅适用于iOS。如果您在android上运行应用,则调用这些方法将崩溃。

要在Nativescript端显示此viewController,您将需要调用以下代码。顺便说一下,您可以在其他地方找到文档来获取对当前pageframe对象的引用。

const controller = page.frame.ios.controller
const  vc = IOMediaViewController.create()
vc.modalPresentationStyle = UIModalPresentationFullScreen
controller.presentViewControllerAnimatedCompletion(vc,true,null)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?