自定义文档列表界面
协作中台 SDK 支持文档列表界面的自定义。可以通过设置文档列表视图控制器的页面代理并实现相关协议方法来完成文档列表界面的自定义,自定义协议定义在 KIMDocumentHomeViewControllerDelegate
中。
接口定义
KIMDocumentHomeViewControllerDelegate
:
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
documentHomeViewContoller(_: configTitleView:) | • controller: KIMDocumentHomeViewController 文档首页视图控制器。 • titleView: KIMNavigationTitleView 标题视图。 | Void | 配置文档列表导航栏标题视图。可实现该方法,通过 titleView 参数获取导航栏标题视图控件,对标题视图控件进行配置,如修改标题样式、添加左右侧按钮等。 |
documentHomeViewContoller(_: updateTitleView:) | • controller: KIMDocumentHomeViewController 文档首页视图控制器。 • titleView: KIMNavigationTitleView 标题视图。 | Void | 更新导航栏标题视图。SDK内部有相关修改标题视图的逻辑,如更新标题展示等,当标题视图发生更新时会调用该代理方法,可通过实现该方法对 titleView 内部变化进行监听,以便对 titleView 进行必要的二次处理。 |
自定义示例
自定义标题栏
文档列表标题栏默认展示了标题及右侧搜索按钮。可通过实现 KIMDocumentHomeViewControllerDelegate
的 configTitleView
协议方法来自定义标题栏的展示及点击事件。

代码示例
swift
// 1. 继承自文档列表视图控制器。
class CustomDocumentHomeViewController: KIMDocumentHomeViewController {
// 2. 重写初始化方法,设置页面自定义协议代理。
required init() {
self.delegate = self
super.init()
}
}
// 3.实现 KIMDocumentHomeViewControllerDelegate 相关协议方法。
extension CustomDocumentHomeViewController: KIMDocumentHomeViewControllerDelegate {
func documentHomeViewContoller(_ controller: KIMDocumentHomeViewController, configTitleView titleView: KIMNavigationTitleView) {
// 设置标题颜色
titleView.titleAttributes = [.foregroundColor: UIColor.blue]
// 隐藏标题栏返回按钮
titleView.setBackButton(hide: true)
// 设置返回按钮点击事件
titleView.setBackButtonAction {
// 返回按钮事件回调
}
// 添加导航栏左侧按钮
// 注意: 添加的 item 请使用 AutoLayout 设置好宽高, 或包含自适应宽高
titleView.setLeftItems([customButton()])
// 添加导航栏右侧按钮
// 注意: 添加的 item 请使用 AutoLayout 设置好宽高, 或包含自适应宽高
titleView.setRightItems([customButton()])
}
func documentHomeViewContoller(_ controller: KIMDocumentHomeViewController, updateTitleView titleView: KIMNavigationTitleView) {
// 内部 SDK 对 titleView 更新的时候会调用该方法,有可能会覆盖 SDK 外部的配置,可以在此处再次配置覆盖 SDK 的更新
}
}
全局替换视图控制器
如果子类化文档列表视图控制器后,希望SDK内部入口在初始化文档列表页面时都使用子类类型,可以通过设置文档列表视图控制器的子类类型 documentHomeViewControllerType
来达到效果。
代码示例
swift
KIM.docsModule.documentHomeViewControllerType = CustomDocumentHomeViewController.self