如果UIViewController没有访问权限,我似乎无法获得最高分UINavigationController.这是我到目前为止:
UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有做任何事情.在keyWindow和rootViewController似乎是非零值太多,所以可选的链接不应该是一个问题.
注意: 做这样的事情是个坏主意.它打破了MVC模式.
我需要使用SwiftUI在应用程序中打开ImagePicker,该怎么办?
我曾考虑过使用UIImagePickerController,但是我不知道如何在SwiftUI中做到这一点。
我的主要目标是使用 SwiftUI 在 HStack/VStack 的视图中嵌入 GIF/MP4 文件。我了解代码需要符合“可表示”协议。我第一次尝试这样做如下:
import SwiftUI
import AVKit
struct GIF : UIViewControllerRepresentable {
let url_name: String
func makeUIViewController(context: UIViewControllerRepresentableContext<GIF>) -> AVPlayerViewController {
return AVPlayerViewController()
}
func updateUIViewController(_ uiViewController: AVPlayerViewController, context: UIViewControllerRepresentableContext<GIF>) {
let url = URL(string: url_name)!
let player = AVPlayer(url: url)
let vc = AVPlayerViewController()
vc.player = player
//PROBLEM
self.present(vc, animated: true){
vc.player?.play()
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我认为“自我”在这里没有任何意义,我们需要引用一个视图。我们将如何做到这一点?我们不能只在故事板中创建视图,因为我想将视图控制器与 SwiftUI 集成。
任何帮助,将不胜感激。
PS 这是我的第一个 iOS 应用程序,所以如果我在这里遗漏了一些非常明显的东西,请尽量保持友善!