我想构建一个 iOS 模块,其中有一个带有 .xib 文件的 viewController 类。现在的问题是如何从我的钛代码中调用该视图。我知道有可用的视图代理,但由于文档不太好,我不知道如何使用它们。
到目前为止,我已经创建了一个可以传递非图形数据的模块,但是如何从我的模块中获取 View 控制器。
我已经检查了 appcelerator wiki,但这没有帮助任何可以指导我的教程都会有所帮助
我想构建一个 iOS 模块,其中有一个带有 .xib 文件的 viewController 类。现在的问题是如何从我的钛代码中调用该视图。我知道有可用的视图代理,但由于文档不太好,我不知道如何使用它们。
到目前为止,我已经创建了一个可以传递非图形数据的模块,但是如何从我的模块中获取 View 控制器。
我已经检查了 appcelerator wiki,但这没有帮助任何可以指导我的教程都会有所帮助
查看 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];
请注意,我们通常不使用 NIB,除非我们有来自第三方的东西迫使我们这样做。以命令方式创建视图比以声明方式创建视图更容易。
您可以在我们的 iOS 模组开发指南中阅读更多关于视图和视图代理的信息。一旦您理解了我在 mod 开发指南中链接的内容(并成功创建了您自己的),mod 开发指南将对您更有用。(顺便说一下,我对指南进行了一些更新,这将使其更容易理解)。http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/iOS_Module_Development_Guide
希望这可以帮助。如果有什么我可以进一步充实的,请告诉我。您需要克服一点理解障碍,但是一旦您投入了一些精力,您将全速进行模块开发。