跳到主要内容
版本:v8

自定义 ViewController

自 Capacitor 3.0 起,您可以在应用中子类化 CAPBridgeViewController。大多数应用不需要此功能,但它为处理某些特定用例提供了支持的机制。

何时创建子类

需要子类化的一些例子包括:在运行时覆盖 Capacitor 的配置值、更改 WKWebViewConfiguration 的属性、替换 Capacitor 使用的 WKWebView 为自定义子类、集成建议在 viewDidLoad() 中添加代码的第三方 SDK、在原生视图显示到屏幕之前操作它们,或注册自定义插件

如果您确实需要创建自定义子类,请按照以下步骤操作。

创建 MyViewController.swift

首先,通过打开 Xcode 创建 MyViewController.swift 文件,右键点击 App 组(在 App target 下),从上下文菜单中选择 New File...,在窗口中选择 Cocoa Touch Class,在下一个屏幕中将 Subclass of: 设置为 UIViewController,然后保存文件。

在 Xcode 中新建 ViewController 在 Xcode 中命名 ViewController

编辑 Main.storyboard

接下来,在 Project Navigator 中选择 Main.storyboard 文件,选择 Bridge View Controller Scene 中的 Bridge View Controller,在右侧选择 Identity Inspector,并将自定义类的名称更改为 MyViewController

在 Xcode 中编辑 Storyboard

编辑 MyViewController.swift

最后,在 Project Navigator 中选择 MyViewController.swift 文件并进行编辑,导入 Capacitor 并更改父类:

import UIKit
import Capacitor

class MyViewController: CAPBridgeViewController {
// 额外代码
}

大功告成!

后续步骤

Xcode 在生成文件时应该已经为您创建了一个 viewDidLoad() 方法,但请查阅 CAPBridgeViewController 中的内联文档,以了解您可能需要用到的 Capacitor 特定方法。任何标记为 open 的内容都明确暴露给子类进行重写。