2016-09-27 4 views
0

Я работаю над реакцией на родное приложение iOS (demo). И новое для реагирования родное. Я хочу знать о том, как это работает. И у меня есть сомнение, то есть в app delegate корневой вид создается по умолчанию. Если я добавлю еще один корневой вид в моем view controller, что произойдет? И он установил, какой из них будет корневым. Может ли кто-нибудь помочь мне в этом? И что произойдет, если я создам его с новым именем модуля?Как использовать RCTRootView в контроллере?

Заранее спасибо ...

ответ

1

Когда вы создаете новый проект Xcode, он будет указать раскадровку (Main.storyboard), чтобы быть вашим «Главный интерфейс». Вы можете увидеть это на вкладке «Общие» настроек вашей цели. В этой раскадровке вы найдете точку входа в расписание, стрелку слева от контроллера просмотра. Это означает, что контроллер просмотра (который по умолчанию относится к классу ViewController) будет вашим контроллером корневого представления. Если вы удалите настройку «Основной интерфейс» (чтобы она была пустой), у вас не будет контроллера корневого представления автоматически; вам придется настроить его вручную.

Ознакомьтесь с примерами, которые доступны для ReactNative. Вы увидите, что общий подход заключается в том, что в application: didFinishLaunchingWithOptions: создается экземпляр UIWindow, за которым следует простая UIViewController. В какой-то момент до или после этого создается экземпляр RCTRootView (либо с использованием RCTBridge, либо инициализатора BundleURL: moduleName:...). Это подкласс UIView, так что он еще не имеет UIViewController. Поэтому он затем устанавливается как вид ранее упомянутой простой UIViewController, который затем устанавливается как rootViewControllerUIWindow, который сделан «ключевым и видимым», после чего мы готовы.

Я работаю с ReactNative только два дня теперь, но видя выше рисунок несколько раз, я вижу себя сегодня строить что-то вроде RCTRootViewController инкапсулировать его, передавая RCTRootView в loadView способе UIViewController. Контроллер представления может иметь инициализаторы, которые соответствуют идентификаторам RCTRootView.

+0

Спасибо за ответ. Я получил решения по моему вопросу. – Ramakrishna

+0

@ Рамакришна вы можете поделиться своим решением. –