MPMediaPickerController 从不在 iOS 13 上显示,没有打印错误
MPMediaPickerController never shows on iOS 13, no error printed
我是第一次探索 MPMediaPickerController,按下按钮后我什么也没看到。 MPMediaPickerController.view 在呈现后有一个框架,但它根本不可见,也没有出现在视图层次结构中。我只是使用一个简单的新 POC 应用程序,它带有一个 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 )
}
"SHOWING" 已打印,但我还是没有看到任何内容。我也没有打印任何其他内容。
我有关于媒体和音乐访问的所有 info.plist 描述。我也得到允许第一次的提示,然后再次打印 "SHOWING"。我实现了代表,但他们从未被解雇,因为我看不到视图。
点击按钮时视觉上没有任何反应,我可以再次点击按钮。
我错过了什么?
可能没有安装音乐应用!
我是第一次探索 MPMediaPickerController,按下按钮后我什么也没看到。 MPMediaPickerController.view 在呈现后有一个框架,但它根本不可见,也没有出现在视图层次结构中。我只是使用一个简单的新 POC 应用程序,它带有一个 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 )
}
"SHOWING" 已打印,但我还是没有看到任何内容。我也没有打印任何其他内容。
我有关于媒体和音乐访问的所有 info.plist 描述。我也得到允许第一次的提示,然后再次打印 "SHOWING"。我实现了代表,但他们从未被解雇,因为我看不到视图。
点击按钮时视觉上没有任何反应,我可以再次点击按钮。
我错过了什么?
可能没有安装音乐应用!