---
title: GKChallengeEventHandlerDelegate
framework: gamekit
role: symbol
role_heading: Protocol
path: gamekit/gkchallengeeventhandlerdelegate
---

# GKChallengeEventHandlerDelegate

You implement the GKChallengeEventHandlerDelegate delegate to control how challenges are displayed in your game.

## Declaration

```swift
protocol GKChallengeEventHandlerDelegate : NSObjectProtocol
```

## Overview

Overview By default, GameKit briefly displays a banner over your game when any of the following events occur: The local player receives a challenge. The local player completes a challenge. A remote player completes a challenge issued by the local player. Your event handler can override or extend this behavior: It can prevent a banner from being displayed. It can be notified when a player taps in a banner. It can handle the events directly.

## Topics

### Detecting When a User Taps a Banner

- [localPlayerDidSelect(_:)](gamekit/gkchallengeeventhandlerdelegate/localplayerdidselect(_:).md)

### Responding When a New Challenge is Received

- [localPlayerDidReceive(_:)](gamekit/gkchallengeeventhandlerdelegate/localplayerdidreceive(_:).md)
- [shouldShowBanner(forLocallyReceivedChallenge:)](gamekit/gkchallengeeventhandlerdelegate/shouldshowbanner(forlocallyreceivedchallenge:).md)

### Responding to Challenges Completed By the Local Player

- [localPlayerDidComplete(_:)](gamekit/gkchallengeeventhandlerdelegate/localplayerdidcomplete(_:).md)
- [shouldShowBanner(forLocallyCompletedChallenge:)](gamekit/gkchallengeeventhandlerdelegate/shouldshowbanner(forlocallycompletedchallenge:).md)

### Responding to Challenges Issued by the Local Player

- [remotePlayerDidComplete(_:)](gamekit/gkchallengeeventhandlerdelegate/remoteplayerdidcomplete(_:).md)
- [shouldShowBanner(forRemotelyCompletedChallenge:)](gamekit/gkchallengeeventhandlerdelegate/shouldshowbanner(forremotelycompletedchallenge:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Deprecated protocols

- [GKAchievementViewControllerDelegate](gamekit/gkachievementviewcontrollerdelegate.md)
- [GKChallengesViewControllerDelegate](gamekit/gkchallengesviewcontrollerdelegate.md)
- [GKChallengeListener](gamekit/gkchallengelistener.md)
- [GKFriendRequestComposeViewControllerDelegate](gamekit/gkfriendrequestcomposeviewcontrollerdelegate.md)
- [GKGameSessionEventListener](gamekit/gkgamesessioneventlistener.md)
- [GKLeaderboardViewControllerDelegate](gamekit/gkleaderboardviewcontrollerdelegate.md)
- [GKPeerPickerControllerDelegate](gamekit/gkpeerpickercontrollerdelegate.md)
- [GKSessionDelegate](gamekit/gksessiondelegate.md)
- [GKTurnBasedEventHandlerDelegate](gamekit/gkturnbasedeventhandlerdelegate.md)
- [GKVoiceChatClient](gamekit/gkvoicechatclient.md)
