![](/img/trans.png)
[英]SwiftUI - How to close a fake Modal View - from the second view inside it, with a close button?
[英]How to close ResearchKit Modal view in SwiftUI?
我正在使用 SwiftUI 編寫一個供個人使用的研究套件應用程序,我想知道如何與打開的模態視圖研究套件調查任務進行交互。
我目前正在使用此代碼打開視圖:
struct SurveyView: UIViewControllerRepresentable {
typealias UIViewControllerType = ORKTaskViewController
func makeUIViewController(context: Context) -> ORKTaskViewController {
let taskViewController = ORKTaskViewController(task: SurveyTask, taskRun: nil)
taskViewController.view.tintColor = UIColor(red:0.64, green:0.15, blue:0.11, alpha:1.00)
return taskViewController
}
func updateUIViewController(_ taskViewController: ORKTaskViewController, context: Context) {
}
}
我正在使用一個按鈕來調用它,但是我無法使用研究工具包中的取消或完成按鈕關閉它,因為我不知道應該在哪里實現didFinishWithReason reason: ORKTaskViewControllerFinishReason
。
任何幫助將不勝感激。
我已經設法使用協調器來做到這一點。 如果有人感興趣,這里是代碼。
struct SurveyView: UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
Coordinator()
}
typealias UIViewControllerType = ORKTaskViewController
func makeUIViewController(context: Context) -> ORKTaskViewController {
let taskViewController = ORKTaskViewController(task: SurveyTask, taskRun: nil)
taskViewController.view.tintColor = UIColor(red:0.64, green:0.15, blue:0.11, alpha:1.00)
taskViewController.delegate = context.coordinator
return taskViewController
}
func updateUIViewController(_ taskViewController: ORKTaskViewController, context: Context) {
}
class Coordinator: NSObject, ORKTaskViewControllerDelegate {
func taskViewController(_ taskViewController: ORKTaskViewController, didFinishWith reason: ORKTaskViewControllerFinishReason, error: Error?) {
taskViewController.dismiss(animated: true, completion: nil)
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.