---
title: "View controller-based status bar in React Native | Nutrient"
canonical_url: "https://www.nutrient.io/guides/react-native/troubleshooting/view-controller-based-status-bar-appearance/"
md_url: "https://www.nutrient.io/guides/react-native/troubleshooting/view-controller-based-status-bar-appearance.md"
last_updated: "2026-05-29T15:33:59.498Z"
description: "Discover how to manage status bar appearance in view controllers. Enhance your app's UI with this comprehensive guide on effective customization techniques."
---

# View controller-based status bar appearance

Nutrient requires the modern `UIViewControllerBasedStatusBarAppearance` mode introduced in iOS 7 to be set to `YES` in your `Info.plist` file. This is the default setting and uses the modern view controller-based API for status bar manipulation. The older `UIApplication`-based API was deprecated in iOS&nbsp;9 and is unavailable when compiling extensions.

If your application uses the legacy API, migrate your code to the new view controller-based one, otherwise Nutrient won’t be able to manage the status bar for you. We detect this issue and show a warning dialog for debug builds.

In older versions, we tried supporting both modes, but they are too different and Apple clearly explained that view controller-based status bar management is the future and that [using global state to manage the status bar is a “Bad Idea](https://twitter.com/smileyborg/status/740033250530197504),” so we fully focus on the new API to deliver a superior product.

You can learn more about this in [Apple’s Transitioning Guide](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/TransitionGuide/AppearanceCustomization.html).

If everything works as intended and all you want to do is disable the warning, set the following:

### SWIFT

```swift

PSPDFKit.SDK.shared.setValue(true, forKey: "com.pspdfkit.development.suppress-warning-alerts")

```

### OBJECTIVE-C

```objc

PSPDFKitGlobal.sharedInstance[@"com.pspdfkit.development.suppress-warning-alerts"] = @YES;

```

Note that we only present the warning during development, so this actually doesn’t change anything in production builds.
---

## Related pages

- [Android Gradle Plugin Requires Java 11](/guides/react-native/troubleshooting/android-gradle-plugin-requires-java-11.md)
- [NutrientView inside a modal is blank or crashes on Android](/guides/react-native/troubleshooting/nutrientview-modal-android.md)
- [How to find your iOS app bundle ID easily](/guides/react-native/troubleshooting/finding-the-bundle-id.md)
- [Guide to adding a Nutrient license key in React Native](/guides/react-native/troubleshooting/add-license-key.md)
- [Fix new architecture build issues in React Native](/guides/react-native/troubleshooting/new-architecture-build-issues.md)
- [Nightlies](/guides/react-native/troubleshooting/nightlies.md)
- [Fixing Android back button crash with Nutrient](/guides/react-native/troubleshooting/handling-back-navigation-with-react-native-screens.md)
- [Understanding app IDs in Android development](/guides/react-native/troubleshooting/what-is-an-app-id.md)
- [Out Of Memory Error React Native Android](/guides/react-native/troubleshooting/out-of-memory-error-react-native-android.md)
- [Find out your Nutrient version easily](/guides/react-native/troubleshooting/getting-the-currently-used-version.md)
- [React Navigation](/guides/react-native/troubleshooting/react-navigation.md)
- [Textinput Error React Native Android](/guides/react-native/troubleshooting/textinput-error-react-native-android.md)
- [Managing Nutrient's render cache effectively](/guides/react-native/troubleshooting/outdated-render-cache.md)
- [Fix Xcode error code 65 for React Native on M1 Macs](/guides/react-native/troubleshooting/xcode-error-65-missing-required-target-architectures-react-native.md)
- [Understanding bundle IDs for iOS app development](/guides/react-native/troubleshooting/what-is-a-bundle-id.md)
- [CMake/Ninja build error caused by long file paths on Windows](/guides/react-native/troubleshooting/windows-path-length-cmake-error.md)

