Я впервые исследую MPMediaPickerController и ничего не вижу при нажатии моей кнопки. MPMediaPickerController.view имеет рамку после его представления, но он вообще не виден и не отображается в иерархии представлений. Я просто использую простое приложение fre sh PO C с ViewController и кнопкой IBOutlet, ограниченным по центру по вертикали и горизонтали, которая вызывает эту функцию:
func checkMediaAccess() {
let status = MPMediaLibrary.authorizationStatus()
switch status {
case .authorized:
showMediaPicker()
case .notDetermined:
MPMediaLibrary.requestAuthorization() { status in
if status == .authorized {
DispatchQueue.main.async {
self.showMediaPicker()
}
}
}
break
case .denied:
print("Denied")
break
case .restricted:
break
@unknown default:
break
}
}
, которая затем вызывает эту функцию на авторизованном :
func showMediaPicker() {
print("SHOWING")
let picker = MPMediaPickerController(mediaTypes: .music)
picker.allowsPickingMultipleItems = false
picker.popoverPresentationController?.sourceView = pickerButton
picker.showsCloudItems = true
picker.delegate = self
self.present(picker, animated: true, completion: nil)
print(picker.view.frame )
}
«ПОКАЗЫВАЕТСЯ», но опять ничего не вижу. Я тоже ничего не распечатал.
У меня есть все описания info.plist для доступа к Media и Musi c. Я также получаю приглашение разрешить в первый раз и снова "ПОКАЗАТЬ "печатается. Я реализовал делегатов, но их никогда не увольняют, потому что я не вижу вид.
Ничего не происходит визуально, когда я нажимаю кнопку, и я могу нажать кнопку снова.
Чего мне не хватает?