我正在研究本机iOS应用程序(演示)。而本土的反应是新的。我想知道RCTRootView
,即它是如何工作的。我有一个疑问,即在app delegate
根视图创建默认。如果我在view controller
添加了另一个根视图会发生什么?并设置哪一个将成为根视图。任何人都可以帮助我吗?如果我使用新模块名称创建它会发生什么?
提前致谢...
答案 0 :(得分:1)
当您创建新的Xcode项目时,它会指定一个故事板( Main.storyboard )作为您的“主界面”。您可以在目标的“常规”设置标签中看到此信息。在该故事板中,您将找到Storyboard Entry Point,它是View Controller左侧的箭头。这表明View Controller(默认为类ViewController
)将成为您的根视图控制器。如果删除“主界面”设置(使其为空),则不会自动拥有根视图控制器;你必须手动设置它。
查看可用于ReactNative的示例。您将看到一般方法是application: didFinishLaunchingWithOptions:
实例化UIWindow
,然后是普通UIViewController
。在此之前或之后的某个时刻,RCTRootView
将被实例化(使用RCTBridge
或BundleURL: moduleName:...
初始值设定项)。这是UIView
的子类,因此它还没有UIViewController
。因此,它被设置为前面提到的普通UIViewController
的视图,然后将其设置为rootViewController
的{{1}},这是“关键且可见”,之后我们'准备好了。
我现在只使用ReactNative两天了,但是反复看到上面的模式,我今天看到自己构建类似于UIWindow
的东西来封装它,在{{{{}}中传递RCTRootViewController
1}} RCTRootView
的方法。视图控制器可以具有与loadView
。