我正在尝试使用 UIKit 制作 PDFView 并从以前的 SwiftUI 视图传递数据。数据本身是一个带有文件名的字符串。不知何故,该字符串没有从 UIViewControllerRepresentable 传递到 UIViewController 并且保持为空。我实在找不到发生这种情况的原因。你能检查一下我哪里错了吗?我希望这段代码足够了。
我正在使用 NavigationLink(destination: FileViewerWrapper(file: "some string")) {}
import PDFKit
import UIKit
import SwiftUI
let pdfView = PDFView()
class FileViewer: UIViewController {
var file = String()
override func viewDidLoad() {
super.viewDidLoad()
print("\n\n\n-----------------------\(file)\n-------------------------------\n\n\n")
pdfView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(pdfView)
pdfView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
pdfView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
pdfView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
pdfView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
guard let path = Bundle.main.url(forResource: file, withExtension: "pdf", subdirectory: "Files") else { return }
if let document = PDFDocument(url: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用新的SwiftUI框架枚举列出案例的原始值。但是,我在使“数据”符合可识别协议方面遇到了麻烦,而且我真的找不到信息。它告诉我“ Initializer'init(_:rowContent :)'要求'Data'必须符合'Identifiable'”。存根在最后一个扩展中为我提供了ObjectIdentifier变量,但不知道我应该返回什么。你能告诉我怎么做吗?如何使数据符合可识别性,以便可以列出原始值?
enum Data: String {
case firstCase = "First string"
case secondCase = "Second string"
case thirdCase = "Third string"
}
extension Data: CaseIterable {
static let randomSet = [Data.firstCase, Data.secondCase]
}
extension Data: Identifiable {
var id: ObjectIdentifier {
return //what?
}
}
//-------------------------ContentView------------------------
import SwiftUI
struct Lala: View {
var name: String
var body: some View {
Text(name)
}
}
struct ContentView: View {
var body: some View {
return List(Data.allCases) { i in …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用模式表从主视图快速访问包含最喜欢的项目的列表。最喜欢的对象保存在一个EnvironmentObject数组中。在模式表中有一个按钮,您基本上可以在其中从收藏夹列表中添加/删除对象。但是,当您删除一个项目时,它EnvironmentObject会变空并且应用程序崩溃:
线程 1:致命错误:未找到
ObservableObject类型FavouritesList。
在日志中它说:
一
View.environmentObject(_:)对FavouritesList可失踪这一观点的祖先:文件
我如何确保它回归ContentView自然?
import SwiftUI
struct ContentView: View {
@EnvironmentObject var favouriteList: FavouritesList
@State private var presentingSheet = false
var body: some View {
NavigationView {
List {
NavigationLink(destination: JudgementsView()) {
Text("Judgements")
}
NavigationLink(destination: SecondaryView()) {
Text("Secondary acts")
}
ScrollView(.horizontal, showsIndicators: false) {
VStack {
if favouriteList.items.isEmpty {
Text("Nothing favoured")
} else {
ForEach(favouriteList.items, id: \.self) { id in
VStack {
HStack { …Run Code Online (Sandbox Code Playgroud)