使用iOS模块构建本机视图并在Titanium中使用它们

Aje*_*rya 6 titanium appcelerator appcelerator-mobile titanium-modules titanium-mobile

我想构建一个iOS模块,其中我有一个带有.xib文件的viewController类.现在的问题是如何从我的钛代码中调用该视图.我知道有可用的视图代理,但由于文档不太好而不知道如何使用它们.

到目前为止我已经创建了一个可以传递非图形数据的模块,但是从我的模块中获取View控制器呢.

我已经检查了appcelerator wiki,但这没有用.任何指导我的教程都会有所帮助

Daw*_*oth 5

查看 iOS 开发指南中的 TiModdevguideDemoView.h/m 和 TiModdevguideDemoViewProxy.h/m:

https://github.com/appcelerator/titanium_modules/tree/master/moddevguide/mobile/ios/Classes

它简单地演示了视图和视图代理之间的关系。在这种情况下,它是一个正方形。

你可以在这里看到它在 JavaScript 中的使用:https : //github.com/appcelerator/titanium_modules/blob/master/moddevguide/mobile/ios/example/demos/viewproxyDemo.js

一旦您掌握了它,并且可以进行简单的查看,您就可以采取下一步来解决您的问题。您需要将您的 XIB 转换为 NIB。最简单的方法是将XIB添加到本机项目中,编译该项目,然后拉出NIB。将其转储到模块的资产中,然后从您的模块代码中引用它。不幸的是,我没有任何使用 NIB 链接的公共资源,但我可以向您展示一个片段。(我们维护的许多模块都使用这种方法,所以我知道你可以成功地让它工作!Jira、Gigya、Urban Airship 等。)

NSBundle* bndl = [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"ti.jira/1.0/assets/JMC.bundle"]];
JMCSketchViewController *sketchViewController = [[[JMCSketchViewController alloc] initWithNibName:@"JMCSketchViewController" bundle:bndl] autorelease];
Run Code Online (Sandbox Code Playgroud)

请注意,我们通常不使用 NIB,除非我们有来自第三方的东西迫使我们这样做。仅以命令方式而不是声明方式创建视图更容易。

您可以在我们的 iOS mod 开发指南中阅读有关视图和视图代理的更多信息。一旦你理解了我上面在 mod dev 指南中链接的内容(并成功创建了你自己的),mod dev 指南将对你更有用。(顺便说一下,我已经对管道中的指南进行了一些更新,这将使其更容易理解)。http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/iOS_Module_Development_Guide

希望这可以帮助。如果有什么我可以进一步充实的,请告诉我。有一点需要您理解,但是一旦您加入了一些肘部润滑脂,您就会全速进行模块开发。