Overview
GroupDetailsViewController displays comprehensive group information and actions:
- Group Info — Name, icon, description, and member count
- Actions — Join, leave, or delete group
- Member Management — View members, add members, view banned members
- Real-Time Updates — Reflects joins, leaves, bans, and ownership changes
Prerequisites
Before implementing group details, ensure you have:- Completed Getting Started setup
- CometChat UIKit v5+ installed via CocoaPods or Swift Package Manager
- Valid CometChat App ID, Region, and Auth Key
- User logged in with
CometChatUIKit.login() - Navigation controller (
UINavigationController) configured
Components
| Component | Description |
|---|---|
CometChatGroup | Renders group avatar, name, and metadata |
GroupActionView | Custom view for action buttons (view/add/banned members) |
CometChatMessagesViewController | Opens group chat interface when “Chat” is tapped |
CometChat.joinGroup() | Joins public or password-protected groups |
CometChat.leaveGroup() | Leaves the current group |
CometChat.deleteGroup() | Deletes and exits the group (owners only) |
CometChatGroupMembers | Lists current group members |
CometChatGroupDelegate | Receives real-time group events |
Integration Steps
Step 1: Present the Group Details Screen
PushGroupDetailsViewController for a selected group:
HomeScreenViewController.swift
Step 2: Set Up the UI
Configure scroll view, header, and action views:GroupDetailsViewController.swift
Step 3: Enable Group Action Buttons
Wire up view/add/banned members actions:GroupDetailsViewController.swift
Step 4: Handle Leave and Delete Actions
Provide ownership-aware leave/delete flows:GroupDetailsViewController.swift
Step 5: Listen for Group Events
Update UI on member joins, leaves, bans, and ownership changes:GroupDetailsViewController.swift
Customization Options
Header Styling
UseCometChatTheme to customize fonts, colors, and borders:
Button Labels
Localize or rebrand action texts:Avatar Placeholder
Provide fallback initials or default images:Edge Cases
| Scenario | Handling |
|---|---|
| Private/Protected groups | Prompt for a password before joining |
| Already a member | Hide or disable Join button |
| Empty group | Show an empty state when no members |
| Owner restrictions | Disable Delete for non-owners |
Error Handling
| Error Type | Solution |
|---|---|
| Join failures | Show alert on network or permission errors |
| Leave/Delete errors | Display retry prompt on API failure |
| Event errors | Log and notify user if group events fail |
Feature Matrix
| Feature | Component / Method | File(s) |
|---|---|---|
| Show group details | GroupDetailsViewController | GroupDetailsViewController.swift |
| View group members | viewMembersView action | GroupDetailsViewController.swift |
| Add members | addMembersView action | GroupDetailsViewController.swift |
| Ban members | bannedMembersView action | GroupDetailsViewController.swift |
| Join group | CometChat.joinGroup() | GroupDetailsViewController.swift |
| Leave group | showLeaveGroupAlert() | GroupDetailsViewController.swift |
| Delete group | showDeleteGroupAlert() | GroupDetailsViewController.swift |
| Real-time updates | CometChatGroupDelegate | GroupDetailsViewController.swift |
Related Components
- Groups - Display group list
- Group Members - Display group member list
- Events - Listen for chat events