Сборка Native View с использованием модуля iOS и использование их в Titanium
Я хочу построить модуль iOS, в котором у меня есть класс viewController с его файлом.xib. Теперь проблема в том, как вызвать это представление из моего титанового кода. Я знаю, что доступны прокси-серверы для просмотра, но не знаю, как их использовать из-за не очень хорошей документации.
До сих пор я создал модуль, в котором можно передавать неграфические данные, но как насчет получения контроллера View из моего модуля.
Я уже проверил вики appcelerator, но это не помогло. Любое руководство, которое поможет мне, будет полезно
1 ответ
Посмотрите на TiModdevguideDemoView.h/m и TiModdevguideDemoViewProxy.h/m в руководстве разработчика модов для iOS:
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. Как только вы поймете, что я упомянул выше в руководстве разработчика модов (и успешно создадите свое собственное), руководство по разработке модов станет для вас гораздо более полезным. (У меня есть некоторые обновления для руководства в процессе разработки, которые, кстати, облегчат его понимание). http://docs.appcelerator.com/titanium/2.0/index.html
Надеюсь это поможет. Дайте мне знать, если есть что-нибудь, что я смогу еще раз раскрыть. Для вас есть небольшой толчок к пониманию, но как только вы добавите немного смазки для локтя, вы будете работать на полной скорости с разработкой модуля.