当我没有 UIViewController 时如何链接 viewDidLoad
Posted
技术标签:
【中文标题】当我没有 UIViewController 时如何链接 viewDidLoad【英文标题】:How to link viewDidLoad when I don't have UIViewController 【发布时间】:2020-06-02 01:32:07 【问题描述】:我正在尝试将 Mapbox 示例类链接到我的 ios 应用程序。示例类实现了 viewDidLoad 方法,所以我假设我应该在 UIViewController 文件中实例化这段代码,对吧?
但不幸的是,我没有那个文件。我正在使用本机反应,我认为我至少应该有正确的 AppDelegate 和 UIViewController 文件?但我没有。我只在 AppDelegate.m 中实例化了 UIViewController,如下所示:
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView; self.window.rootViewController = rootViewController;
这是我应该“链接”示例类以便触发 viewDidLoad 的地方吗?
【问题讨论】:
【参考方案1】:为了实现viewDidLoad
方法,您必须创建UIViewController
的子类。在AppDelegate.m
文件中,您使用的是父类,而不是子类。
一旦您创建了UIViewController
子类(您可以将其命名为 MapboxViewController 之类的名称),您可以将其替换为列出的第一行代码。
而不是
UIViewController *rootViewController = [UIViewController new];
你应该有
MapboxViewController *rootViewController = [MapboxViewController new];
这是一个 Stack Overflow,它解释了如何在 ReactNative 项目中添加视图控制器。它在 Swift 中,但我认为它仍然是一个很好的指南。
React-Native iOS - How can I navigate to a non-React-Native view (native iOS view controller) from a React-Native view with a button press?
【讨论】:
感谢您的解释。其实我还没有让它工作。是否可以只更新视图部分而不更新视图控制器?我正在尝试从 Rect 本机应用程序实现 mapbox 示例,我需要使用本机语言(目标 c)来更新视图,但该示例始终显示我包含视图控制器。但我不知道如何从 react native 切换到不同的视图控制器以上是关于当我没有 UIViewController 时如何链接 viewDidLoad的主要内容,如果未能解决你的问题,请参考以下文章
在 iPhone 中推送 UIViewController 时如何更改标签栏项目的选定索引
在 UIViewController 中移动滚动视图时遇到问题
推送 UIViewController 时如何更改 TabBarItens?