跳到主要内容

添加好友页面

添加好友页面用于查询用户信息。进入该页面,在输入框输入用户应用号,点击搜索,SDK 就会从服务器拉取用户信息。IMKit 提供基于 UIKit UITableView 的搜索页面类 RCUserSearchViewController

添加好友页面

添加好友页面一般由导航栏,搜索栏和好友列表三部分部分组成。

初始化

调用 RCUserSearchViewController 类的初始化方法构建添加好友页面。注意,您需要创建一个 RCUserSearchViewModel 对象, 作为RCUserSearchViewController 的业务逻辑处理模块。


RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
RCUserSearchViewController *vc = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];
[self.navigationController pushViewController:vc animated:YES];
参数类型说明
viewModelRCUserSearchViewModelRCUserSearchViewController 的业务逻辑处理模块。 处理页面UI的配置以及用户信息的拉取。

定制化

IMKit 添加好友界面的样式可供自定义修改。

标题栏

IMKit 的 RCUserSearchViewController 使用了系统的导航栏,可用于显示页面的标题,用户通过继承RCUserSearchViewController ,在 viewDidLoad 方法中通过 title 属性设置标题。

- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"新标题"
}

搜索框

RCUserSearchViewController 支持自定义搜索框,通过设置 RCUserSearchViewModeldelegate 属性, 实现相关代理方法,自定义搜索功能。


RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController * = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];

[self.navigationController pushViewController:contactVC animated:YES];

...

/// 配置自定义的搜索功能
- (RCSearchUserProfileViewModel *_Nullable)willConfigureSearchBarViewModelForUserSearchViewModel:(RCUserSearchViewModel *)viewModel {
//返回自定义的搜索 ViewModel
}

...

用户信息显示

RCUserSearchViewController 支持自定显示用户信息的跳转逻辑,通过设置 RCUserSearchViewModeldelegate 属性, 实现相关代理方法。


RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController * = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];

[self.navigationController pushViewController:contactVC animated:YES];

...

/// 配置自定义显示用户详情,Returns: App是否处理[YES : SDK不再处理, NO: SDK处理]
- (BOOL)userSearchViewModel:(RCUserSearchViewModel *)viewModel showUserProfile:(RCUserProfile *)profile;
{
}

...

自定义搜索事件

RCUserSearchViewController 支持自定义搜索事件。


RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController * = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];

[self.navigationController pushViewController:contactVC animated:YES];

...
/// 触发搜索用户事件, App是否处理[YES : SDK不再处理, NO: SDK处理]
- (BOOL)userSearchViewModel:(RCUserSearchViewModel *)viewModel searchUserProfileWithText:(NSString *)text {

}

...