Skip to main content
Enhance your iOS chat app with threaded messaging by integrating CometChat’s UIKit for iOS, allowing users to reply to specific messages within a focused thread view.

Overview

Threaded messages allow users to reply to specific messages within a conversation, creating a sub-conversation for improved clarity and context. With CometChat’s UIKit for iOS, you can:
  • Display a dedicated thread view.
  • View and send replies to a selected message.
  • Maintain context between the main conversation and the thread.

Prerequisites

  • A working UIKit-based iOS project.
  • CometChat UIKit for iOS v4+ installed via Swift Package Manager or CocoaPods.
  • Valid CometChat App ID, Region, and Auth Key.
  • A navigation controller configured in your project.

Components

Integration Steps

Show the “Reply in Thread” Option

Navigate to the thread when a message’s thread icon is tapped.
File reference:
ThreadedMessagesVC.swift
Captures user intent and opens a focused thread screen. Show a dedicated UI for thread replies. In ThreadedMessagesVC.swift:
Header:
Message List:
Provides a focused UI for thread interactions.

Send a Threaded Message

Ensure new replies are attached to the correct parent message.
Set the conversation context:

Fetch & Display Thread Replies

Only messages that are part of the thread are displayed. Handled internally by:
Ensures CometChatMessageList fetches replies using the parentMessageId.

Customization Options

  • Header Styling: Customize CometChatThreadedMessageHeader (fonts, colors, etc.).
  • Composer: Modify placeholder text, input styles, and icons.
  • Navigation: Add a custom navigationItem.leftBarButtonItem for back navigation.

Filtering / Edge Cases

  • Parent Message Deleted: Display a fallback UI or disable the composer.
  • No Replies: Show an empty state (e.g., “No replies yet”).
  • Offline Mode: Disable the composer and queue thread operations.

Error Handling & Edge Cases

  • Fetch Failures: Show an error UI or retry mechanism when loading thread messages.
  • Send Failures: Handle send errors via delegate callbacks or show an alert with retry.
  • Loading States: Display a UIActivityIndicatorView during fetch/send operations.
  • Blocked Users: Remove the composer and display a blocked status label.

Summary / Feature Matrix

Full Sample App

Explore a complete sample application demonstrating threaded messaging.View on GitHub

UIKit Source Code

Browse the CometChat UIKit for iOS source code.View on GitHub