Swift 如何从Xcode中的iAction函数创建视图

Swift 如何从Xcode中的iAction函数创建视图,swift,xcode,uiview,uiviewcontroller,ibaction,Swift,Xcode,Uiview,Uiviewcontroller,Ibaction,我在理解如何从Xcode中的IBaction函数创建视图时遇到了一些困难 有人知道我如何通过单击我创建的“选择日期”按钮从主页打开RKViewController吗?我的代码块中与此按钮相关的iAction函数为“calendarDisplay” “选择日期”按钮的代码块: import UIKit import SwiftUI class HomeViewController: UIViewController { @State var startIsPresented = false

我在理解如何从Xcode中的IBaction函数创建视图时遇到了一些困难

有人知道我如何通过单击我创建的“选择日期”按钮从主页打开RKViewController吗?我的代码块中与此按钮相关的iAction函数为“calendarDisplay”

“选择日期”按钮的代码块:

import UIKit
import SwiftUI

class HomeViewController: UIViewController {

@State var startIsPresented = false

var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().
addingTimeInterval(60*60*24*730), mode: 1)


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}


   func getTextFromDate(date: Date!) -> String {
     let formatter = DateFormatter()
     formatter.locale = .current
     formatter.dateFormat = "EEEE, MMMM d, yyyy"
     return date == nil ? "" : formatter.string(from: date)
 }

}

@IBAction func calendarDisplay(_ sender: Any) {

**//Not sure what to put here - have tried many times to call the RKViewController but have failed.**


}
}
这是在另一个项目中工作的代码块-我不知道如何在@iAction函数中实现这一点,任何帮助都将不胜感激

import SwiftUI

struct ContentView : View {

@State var startIsPresented = false

var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().
addingTimeInterval(60*60*24*365), mode: 1) //

var body: some View {
    VStack (spacing: 25) {

        Button(action: { self.startIsPresented.toggle() }) {
            VStack {
                Text("Example 2 - Range of Dates Selection").foregroundColor(.blue)
                Text("(end date > start date)").foregroundColor(.blue)
            }
        }
        .sheet(isPresented: self.$startIsPresented, content: {
            RKViewController(isPresented: self.$startIsPresented, rkManager: self.rkManager)})
        VStack {
            Text(self.getTextFromDate(date: self.rkManager.startDate))
            Text(self.getTextFromDate(date: self.rkManager.endDate))
        }

    }
}

func getTextFromDate(date: Date!) -> String {
    let formatter = DateFormatter()
    formatter.locale = .current
    formatter.dateFormat = "EEEE, MMMM d, yyyy"
    return date == nil ? "" : formatter.string(from: date)
}

}

看起来您正试图将
UIKit
(您的第一个视图控制器)与
SwiftUI
(您的
ContentView
)混合使用。其实没那么简单。这可能会为您指明正确的方向。显示您的RKViewController代码。。。。它采用什么参数?您需要初始化RKViewController并将其显示在iAction函数中