iOS 14のTipsを書いていこうと思います。
写真のアクセス権限の変更
iOS 13までは写真のアクセス権限の選択肢が許可しない
・ OK
の2択でしたが、
iOS 14からは写真のアクセス権限の選択肢が 写真を選択
・ 全ての写真へのアクセスを許可
・ 許可しない
の3択になりました。
iOS 14では写真個別にアクセス権限を与えれるようになりました。
iOS 14ダイアログ
写真のアクセス権限の呼び出しは以下のコードでOSに合わせてダイアログを表示します。
PHPhotoLibrary.requestAuthorization { _ in
// 省略
}
###iOS 14でも従来のダイアログを出すには?
アプリで写真を保存するだけの用途なら従来のダイアログで問題ないと思います。
まず、Info.plistにPrivacy - Photo Library Additions Usage Description (NSPhotoLibraryAddUsageDescription)
を設定して文言を追加します。
なら以下のコードで大丈夫です。
if #available(iOS 14, *) {
PHPhotoLibrary.requestAuthorization(for: .addOnly) { _ in
// 省略
}
} else {
PHPhotoLibrary.requestAuthorization { _ in
// 省略
}
}
requestAuthorization
というメソッドで 写真のみ追加
もしくは 読み出し/書き込み
のどちらかで指定して呼び出しできるので .addOnly
を指定すると従来のダイアログが出すことができます。
バックボタン
iOS 14からバックボタンを長押しすることで前の画面らをリストしたポップアップが表示され、一気に一番最初の画面に戻るなどできるようになりました。
他にもバックボタンの見た目も制御できるようになり、UINavigationItemクラスに以下のプロパティが追加されました。
var backButtonDisplayMode: UINavigationItem.BackButtonDisplayMode { get set }
見た目は3種類設定できます
.default
前の画面タイトルがバックボタンに反映します
※タイトルが入ってなければ Back
になります
.generic
.minimal
コード例
if #available(iOS 14.0, *) {
self.navigationItem.backButtonDisplayMode = .minimal
}
注意
バックボタンの見た目は制御できますが、長押しした際のリストは画面タイトル(self.title
)もしくはバックボタン(backButtonTitle
)の文言が表示されます。
もし何も文言を入れてないと空欄にまたは同じ文言を入れると、どこの画面に戻るかぱっと見でわからなくなってしまいます。
iOS 14のバックボタンの対応として長押しした際にどこの画面に戻るか分かる文言を設定してあげるといいです。