Swift 如何从Xcode中的iAction函数创建视图
我在理解如何从Xcode中的IBaction函数创建视图时遇到了一些困难 有人知道我如何通过单击我创建的“选择日期”按钮从主页打开RKViewController吗?我的代码块中与此按钮相关的iAction函数为“calendarDisplay” “选择日期”按钮的代码块: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
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函数中