Add Friends
The Add Friends page allows you to query user information. Enter a user's Application ID in the search field and tap Search. The IMKit SDK will then fetch the user's details from the server. IMKit provides RCUserSearchViewController
, a search page class based on UIKit's UITableView
.
The Add Friends page typically consists of three components: a navigation bar, search bar, and friend list.

Initialization
Initialize the Add Friends page by calling the RCUserSearchViewController
class constructor. Note that you need to create an RCUserSearchViewModel
object as the business logic handler for RCUserSearchViewController
.
Parameters
Parameter | Type | Description |
---|---|---|
viewModel | RCUserSearchViewModel | The business logic handler for RCUserSearchViewController . Manages UI configuration and user information retrieval. |
Sample Code
RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
RCUserSearchViewController *vc = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];
[self.navigationController pushViewController:vc animated:YES];
Customization
The IMKit SDK allows customization of the Add Friends interface.
Custom Title Bar
IMKit's RCUserSearchViewController
uses the system navigation bar to display the page title. Subclass RCUserSearchViewController
and set the title via the title
property in the viewDidLoad
method.
Sample Code
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"New Title";
}
Custom Search Bar
RCUserSearchViewController
supports custom search bars. Set the delegate
property of RCUserSearchViewModel
and implement the corresponding delegate methods to customize search functionality.
Sample Code
RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController *vc = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];
[self.navigationController pushViewController:vc animated:YES];
...
/// Configure custom search functionality
- (RCSearchUserProfileViewModel *_Nullable)willConfigureSearchBarViewModelForUserSearchViewModel:(RCUserSearchViewModel *)viewModel {
// Return your custom search ViewModel
}
...
Custom User Profile Display
RCUserSearchViewController
supports custom logic for displaying user profiles. Set the delegate
property of RCUserSearchViewModel
and implement the corresponding delegate methods.
Sample Code
RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController *vc = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];
[self.navigationController pushViewController:vc animated:YES];
...
/// Configure custom user profile display. Returns: Whether the app handles the action [YES: SDK won't process; NO: SDK handles internally]
- (BOOL)userSearchViewModel:(RCUserSearchViewModel *)viewModel showUserProfile:(RCUserProfile *)profile {
}
...
Custom Search Events
RCUserSearchViewController
supports custom search events. Set the delegate
property of RCUserSearchViewModel
and implement the corresponding delegate methods.
Sample Code
RCUserSearchViewModel *viewModel = [[RCUserSearchViewModel alloc] init];
viewModel.delegate = self;
RCUserSearchViewController *vc = [[RCUserSearchViewController alloc] initWithViewModel:viewModel];
[self.navigationController pushViewController:vc animated:YES];
...
/// Trigger custom search events. Returns: Whether the app handles the action [YES: SDK won't process; NO: SDK handles internally]
- (BOOL)userSearchViewModel:(RCUserSearchViewModel *)viewModel searchUserProfileWithText:(NSString *)text {
}
...