当我没有 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?

UIViewController 无法重定向

可以使用自定义 UIViewController 但没有自定义 UIView 类来实现手势识别吗?

从导航堆栈推送/弹出uiviewcontroller时如何收到警报