---
title: "challengeComposeController(withMessage:players:completion:)"
framework: gamekit
role: symbol
role_heading: Instance Method
path: "gamekit/gkscore/challengecomposecontroller(withmessage:players:completion:)"
---

# challengeComposeController(withMessage:players:completion:)

Provides a challenge compose view controller with preselected player identifiers and a preformatted, player-editable message.

## Declaration

```swift
func challengeComposeController(withMessage message: String?, players: [GKPlayer]?, completion completionHandler: GKChallengeComposeHandler? = nil) -> UIViewController
```

```swift
func challengeComposeController(withMessage message: String?, players: [GKPlayer]?, completion completionHandler: GKChallengeComposeHandler? = nil) -> NSViewController
```

## Parameters

- `message`: The challenge that GameKit sends to other players.
- `players`: The players to invite to the challenge.
- `completionHandler`: A block that GameKit calls after it displays the view controller.

## See Also

### Issuing a Score Challenge

- [GKChallengeComposeHandler](gamekit/gkchallengecomposehandler.md)
- [challengeComposeController(withMessage:players:completionHandler:)](gamekit/gkscore/challengecomposecontroller(withmessage:players:completionhandler:).md)
- [challengeComposeController(withPlayers:message:completionHandler:)](gamekit/gkscore/challengecomposecontroller(withplayers:message:completionhandler:).md)
