> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tappify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Screen names

> How screens get their names automatically, why SwiftUI apps often need a manual tag, and how to add one.

Every comment thread is anchored to a screen identifier, so threads for "the checkout
screen" group together instead of scattering across every visit to it. Most of the time you
never have to think about this — screen names are captured automatically.

## Automatic capture

The SDK names a screen after its hosting view controller class, captured automatically when
that view controller appears. For UIKit apps, this is almost always exactly what you want:
`CheckoutViewController` reads as "Checkout."

## Why pure SwiftUI apps get mushy names

SwiftUI views don't have their own view controllers — a `UIHostingController` is the actual
class the automatic capture sees, and one hosting controller often wraps several
nested or modified SwiftUI views. The result is a screen name like `HostingController` that
tells you nothing about which screen it actually was, especially in an app built entirely in
SwiftUI where most or all of your screens share that same generic wrapper.

## Fix it: tag the screen

Override the automatic name per-view with the `.tappifyScreen(_:)` modifier:

<CodeGroup>
  ```swift SettingsView.swift theme={null}
  struct SettingsView: View {
      var body: some View {
          VStack { /* ... */ }
              .tappifyScreen("Settings")
      }
  }
  ```
</CodeGroup>

You can also call `Tappify.tagScreen(_:)` directly from anywhere — for example, from a
UIKit `viewDidAppear` override — for the same effect. Both are documented in full in the
[API reference](/sdk/api-surface#screen-tagging).

<Note>
  There's no silent fallback here by design: the overlay always displays the raw screen
  identifier it's using, so a bad auto-generated name is visible in the thread list rather
  than hidden. If you see an unhelpful name, that's your signal to tag that screen.
</Note>

If you're integrating the SDK into a new SwiftUI app, it's worth tagging your main screens
up front rather than waiting to notice bad names later — see the
[quickstart's optional steps](/sdk/quickstart#optional).
