LoginSignup
3
2

More than 3 years have passed since last update.

【備忘録】iOS 14 細かいTips 写真アクセス権限・バックボタン

Last updated at Posted at 2020-11-14

iOS 14のTipsを書いていこうと思います。

写真のアクセス権限の変更

iOS 13までは写真のアクセス権限の選択肢が許可しないOKの2択でしたが、
iOS 14からは写真のアクセス権限の選択肢が 写真を選択全ての写真へのアクセスを許可許可しないの3択になりました。
iOS 14では写真個別にアクセス権限を与えれるようになりました。

iOS 13ダイアログ
Screen Shot 2020-11-14 at 2.11.14.png

iOS 14ダイアログ

Screen Shot 2020-11-14 at 2.14.44.png

写真のアクセス権限の呼び出しは以下のコードでOSに合わせてダイアログを表示します。

PHPhotoLibrary.requestAuthorization { _ in
   // 省略
}

iOS 14でも従来のダイアログを出すには?

アプリで写真を保存するだけの用途なら従来のダイアログで問題ないと思います。

まず、Info.plistにPrivacy - Photo Library Additions Usage Description (NSPhotoLibraryAddUsageDescription)を設定して文言を追加します。

スクリーンショット 2020-11-14 2.38.57.png

なら以下のコードで大丈夫です。

if #available(iOS 14, *) {
     PHPhotoLibrary.requestAuthorization(for: .addOnly) { _ in
        // 省略     
     }
} else {
     PHPhotoLibrary.requestAuthorization { _ in
        // 省略        
     }
}

requestAuthorizationというメソッドで 写真のみ追加もしくは 読み出し/書き込みのどちらかで指定して呼び出しできるので .addOnlyを指定すると従来のダイアログが出すことができます。

Screen Shot 2020-11-14 at 2.40.21.png

バックボタン

iOS 14からバックボタンを長押しすることで前の画面らをリストしたポップアップが表示され、一気に一番最初の画面に戻るなどできるようになりました。

例 設定アプリ
Screen Shot 2020-11-14 at 15.09.03.png

他にもバックボタンの見た目も制御できるようになり、UINavigationItemクラスに以下のプロパティが追加されました。

var backButtonDisplayMode: UINavigationItem.BackButtonDisplayMode { get set }

見た目は3種類設定できます

.default

前の画面タイトルがバックボタンに反映します
※タイトルが入ってなければ Backになります

Screen Shot 2020-11-14 at 15.26.00.png

.generic

バックボタンがBackになります
Screen Shot 2020-11-14 at 15.29.55.png

.minimal

バックボタンに名称が表示されず<だけになります
Screen Shot 2020-11-14 at 15.30.56.png

コード例

if #available(iOS 14.0, *) {
    self.navigationItem.backButtonDisplayMode = .minimal
}

注意

バックボタンの見た目は制御できますが、長押しした際のリストは画面タイトル(self.title)もしくはバックボタン(backButtonTitle)の文言が表示されます。

もし何も文言を入れてないと空欄にまたは同じ文言を入れると、どこの画面に戻るかぱっと見でわからなくなってしまいます。

例 同じ文言
Screen Shot 2020-11-14 at 15.37.57.png

iOS 14のバックボタンの対応として長押しした際にどこの画面に戻るか分かる文言を設定してあげるといいです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2