如何在视图控制器中使用RCTRootView?

时间:2016-09-27 09:07:06

标签: ios react-native native-module

我正在研究本机iOS应用程序(演示)。而本土的反应是新的。我想知道RCTRootView,即它是如何工作的。我有一个疑问,即在app delegate根视图创建默认。如果我在view controller添加了另一个根视图会发生什么?并设置哪一个将成为根视图。任何人都可以帮助我吗?如果我使用新模块名称创建它会发生什么?

提前致谢...

1 个答案:

答案 0 :(得分:1)

当您创建新的Xcode项目时,它会指定一个故事板( Main.storyboard )作为您的“主界面”。您可以在目标的“常规”设置标签中看到此信息。在该故事板中,您将找到Storyboard Entry Point,它是View Controller左侧的箭头。这表明View Controller(默认为类ViewController)将成为您的根视图控制器。如果删除“主界面”设置(使其为空),则不会自动拥有根视图控制器;你必须手动设置它。

查看可用于ReactNative的示例。您将看到一般方法是application: didFinishLaunchingWithOptions:实例化UIWindow,然后是普通UIViewController。在此之前或之后的某个时刻,RCTRootView将被实例化(使用RCTBridgeBundleURL: moduleName:...初始值设定项)。这是UIView的子类,因此它还没有UIViewController。因此,它被设置为前面提到的普通UIViewController的视图,然后将其设置为rootViewController的{​​{1}},这是“关键且可见”,之后我们'准备好了。

我现在只使用ReactNative两天了,但是反复看到上面的模式,我今天看到自己构建类似于UIWindow的东西来封装它,在{{{{}}中传递RCTRootViewController 1}} RCTRootView的方法。视图控制器可以具有与loadView

匹配的初始化程序