Skip to main content
Enable users to start new 1:1 or group chats in your iOS app using CometChat’s UIKit for iOS by integrating the CreateConversationVC screen.

Overview

The CreateConversation enables users to:
  • Browse CometChat users and groups via native list components.
  • Search within users and groups.
  • Toggle between “Users” and “Groups” tabs using a segmented control.
  • Swipe between lists with a UIPageViewController.
  • Navigate to MessagesVC upon selecting a user or group.

Prerequisites

  • A UIKit-based iOS project.
  • CometChat UIKit for iOS v5 installed via CocoaPods or Swift Package Manager.
  • User authenticated with CometChat.login() before presenting this screen.
  • A UINavigationController embedded in your flow.
  • MessagesVC implemented to handle chat screens.

Components

Integration Steps

1. Presenting the Create Conversation Screen

Push CreateConversations to allow starting a chat.
File reference:
HomeScreenViewController.swift
Provides entry point to the create-conversation flow.

2. Setting Up the User Interface

Build the segmented control and page view controller.
File reference:
CreateConversations.swift
Initializes the UI elements and search integration.

3. Configuring Segmented Control Navigation

Toggle between user and group lists when the segment changes.
File reference:
CreateConversations.swift
Keeps the proper search bar and view in sync with the selected tab.

4. Handling Item Selection

Navigate to MessagesVC when a user or group is tapped.
File reference:
CreateConversations.swift
Routes the user to the appropriate chat screen.

5. Managing Page View Transitions

Implement data source and delegate for smooth swiping.
File reference:
CreateConversations.swift
Synchronizes the segmented control with page swipes.

Customization Options

  • Segment Styling: Use CometChatTheme to customize tint and font.
  • Labels: Localize or rebrand “USERS” / “GROUPS” labels.
  • Search: Adjust searchController.placeholder and styling.

Filtering & Edge Cases

  • Live Search: Built-in in CometChatUsers and CometChatGroups.
  • Empty States: Components display default “no results” views.
  • Segment Disabled: Hide tabs if only one list is relevant.

Error Handling

  • Load Errors: Use setErrorView() on list components.
  • Navigation Failures: Present an alert if push fails.
  • Blocked Users: Intercept in onItemClick to prevent navigation.

Feature Matrix

Full Sample App

Explore the complete create-conversation flow: GitHub → SampleApp

UIKit Source Code

Browse the source for CreateConversationVC: GitHub → CreateConversationVC.swift