Configure open channel settings
In UIKit, you can configure channel settings in open channels through the SBUOpenChannelSettingsViewController class. In the open channel settings view, participants can change the channel name and cover image, see the participant list, and delete the channel. For channel operators, they can also view the moderation menu.
Initialize
You can start building a open channel settings view through the SBUOpenChannelSettingsViewController class. Use either the init(channelURL:) or init(channel:) initializer to create the instance and display the view as shown below.
Usage
The following items are key elements of SBUOpenChannelSettingsViewController that are used to create a functional open channel settings view.
Module components
In the SBUOpenChannelSettingsViewController class, SBUOpenChannelSettingsModule and its components are used to create and display the open channel settings view. The module is composed of two components: HeaderComponent and ListComponent.
| Property name | Type | Default value |
|---|---|---|
HeaderComponent | SBUOpenChannelSettingsModule.Header | SBUModuleSet.OpenChannelSettingsModule.HeaderComponent |
ListComponent | SBUOpenChannelSettingsModule.List | SBUModuleSet.OpenChannelSettingsModule.ListComponent |
Each module component is assigned a value from the SBUModuleSet class and gets added to the view in the setupView() method of the Sendbird UIKit's view life cycle. Then, the configure method of each module component is called to set the property values and display the view.
HeaderComponent
The HeaderComponent includes a channel title, a back button that takes the user to the previous view, and an edit button that allows the user to make edits to the channel information. Each property corresponds to the elements in the navigation bar of SBUOpenChannelSettingsViewController.
The following table shows the parameters of the configure method of the HeaderComponent.
| Parameter name | Type |
|---|---|
delegate | SBUOpenChannelSettingsModuleHeaderDelegate |
theme | SBUChannelSettingsTheme |
Note: To learn more about the delegate method and the properties of the
HeaderComponent, go to the API reference page.
ListComponent
The ListComponent shows a settings menu, which includes a toggle button that turns on or off functions such as push notifications, a participant list, and the option to delete the channel. For channel operators, the moderation menu is also available.
The following table shows the parameters of the configure method of the ListComponent.
| Parameter name | Type |
|---|---|
delegate | SBUOpenChannelSettingsModuleListDelegate |
dataSource | SBUOpenChannelSettingsModuleListDataSource |
theme | SBUChannelSettingsTheme |
Note: To learn more about the delegate, data source, and the properties of the
ListComponent, go to the API reference page.
View model
The SBUOpenChannelSettingsViewController class uses a view model that is a type of the SBUOpenChannelSettingsViewModel class. The view model is created in the initializer of the view controller through the createViewModel(channel:channelURL:) method. When the view model object is created, it retrieves channel information from Chat SDK to the view controller and updates the view through the baseChannelSettingsViewModel(_:didChangeChannel:withContext:) event.
Note: If the value of
channelorchannelURLis invalid, the view model cannot retrieve channel information.
The following table shows the parameters of the createViewModel method.
| Parameter name | Type | Description |
|---|---|---|
channel | BaseChannel | Specifies the channel value. (Default: |
channelURL | String | Specifies the URL of the channel. (Default: |
Note: To learn more about the methods and the event delegates of the view model, go to this API reference page.
SBUOpenChannelSettingsViewController properties
To learn more about the properties of SBUOpenChannelSettingsViewController, go to the API reference page.
Customization
You can customize the open channel settings view by changing the view controller, module component, and view model that correspond to this key function.
View controller
There are two ways to customize the view controller: change the default view controller value in the global SBUViewControllerSet class or set a single-use custom view controller in the key function.
The custom view controller in the code below is used in the following customization examples.
- Change the value of
SBUViewControllerSet.OpenChannelSettingsViewController.
- Use a one-time custom view controller in the open channel settings view.
Module component
There are two ways to customize a module component: change the default module component type in the global SBUModuleSet.OpenChannelSettingsModule class or set a single-use custom module component in the view controller.
The custom header component in the code below is used in the following customization examples.
- Change the value of
SBUModuleSet.OpenChannelSettingsModule.HeaderComponent.
- Change the module component in
SBUOpenChannelSettingsViewController.
Note: To learn more about the methods of
SBUOpenChannelSettingsModule, go to this API reference page.
View model
In order to use a customized view model or customize the existing view model's event delegate, you must override the view controller.
- Use a customized view model.
- Customize the view model's event delegate.