<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PermissionKit",
  "identifier" : "/documentation/PermissionKit/PermissionButton/init(question:permissionFlow:onPermissionResult:label:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "PermissionKit",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:22_PermissionKit_SwiftUI0A6ButtonV8question14permissionFlow02onA6Result5labelACy0aB025SignificantAppUpdateTopicVq_GAH0A8QuestionCyAJG_AH0aH0Oys0J0OyAH0aJ0Os5Error_pGcq_yctcAJRszrlufc"
  },
  "title" : "init(question:permissionFlow:onPermissionResult:label:)"
}
-->

# init(question:permissionFlow:onPermissionResult:label:)

Creates a button that requests permission from parents or guardians, presenting a specific permission flow and reporting the outcome to a completion handler.

```
@MainActor @preconcurrency init(question: PermissionQuestion<Topic>, permissionFlow: PermissionFlow, onPermissionResult: @escaping (Result<PermissionResult, any Error>) -> Void, @ViewBuilder label: @escaping () -> Label) where Topic == SignificantAppUpdateTopic
```

## Parameters

`question`

The question to ask a parent or guardian on behalf of their child.

`permissionFlow`

The permission flow to present.

`onPermissionResult`

A closure that’s called with the result of the permission flow. The
button is disabled while a flow is presented, so the closure is invoked once per
completed interaction.

`label`

The view to display inside the button.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)