jarinosuke blog

From the Nothing, with iOS

iOS 8 で設定アプリ内にあるアプリの設定へ遷移させる

設定アプリへの遷移

ローカル通知や位置情報の Always と WhenInUse の二種類の認証、 HealthKit など、

iOS 8 では iOS 7 よりも多くのユーザの許可が必要な情報が増えたように思います。

しかし、ユーザに初回のアラートで拒否されてしまうと iOS 7 まででは

アプリ自身が設定画面へ遷移させて再度許可してもらう方法はありませんでした。

設定アプリへ非公開のカスタムスキームを用いて遷移させるという手法もありましたが。

iOS 8 での設定画面への遷移方法

iOS 8 ではアプリが何かしらのカスタマイズ設定を保持している場合、

設定アプリ内にアプリ毎の設定ルートビューができました。

そのビューに以下のメソッドを実行する事で遷移する事が出来ます。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

これは iOS 8 から追加された UIApplicationOpenSettingsURLString という定数を用いています。

上記の定数の中身をランタイムでのぞいてみると app-settings: とだけ書いてあるので、

特にアプリに独自のカスタムスキームを設定する必要は無さそうです。