swiftUI开发macOS应用:窗体间的跳转,能过Button跳转到swiftui新窗体

1.添加一个窗口类

class AddWindowWC<RootView : View>: NSWindowController {
    convenience init(rootView: RootView) {
        let hostingController = NSHostingController(rootView: rootView.frame(width: 300, height: 400))
        let window = NSWindow(contentViewController: hostingController)
        window.setContentSize(NSSize(width: 300, height: 400))
        self.init(window: window)
    }
}

这是一个窗口类,创建实例后会创建一个新的窗口。阅读代码我们可以看出如果实例化此类,将会得到一个宽300,高400的新窗口。

2.新建一个要跳转后的swiftui文件

这里我们创建一个名为“addWindowView.swift”的swiftUI View文件。

import SwiftUI

struct addWindowView: View {
    @State var inputname = ""
    @State var inputclass = ""
    @State var idnum = ""
    
    var body: some View {
        VStack{
            HStack{
                Text("姓名")
                TextField("姓名", text:$inputname)
            }
            .padding()
            HStack{
                Text("班级")
                TextField("班级号", text: $inputclass)
            }
            .padding()
            HStack{
                Text("学号")
                TextField("学号", text: $idnum)
            }
            .padding()
        }
    }
}

struct addWindowView_Previews: PreviewProvider {
    static var previews: some View {
        addWindowView()
    }
}

3.添加一个按钮来进行跳转

Button按钮的action修改为用刚刚制作的界面作为rootView创建新窗口的命令。代码如下:

Button(action: {
                let AddWindowView = addWindowView(viewContext: viewContext)

                let controller = AddWindowWC(rootView: AddWindowView)
                controller.window?.title = "新窗口的标题"
                controller.showWindow(nil)
            }) {
                Label("按钮的标题", systemImage: "plus")
            }
 
下载帮助:免费版直接查看下载地址,付费版,支付后刷新本页查看下载地址,将下载地址复制到浏览器网址栏进行下载
微友素材资源模板下载_axure模板_小程序模板_ppt模板_网页模板 » swiftUI开发macOS应用:窗体间的跳转,能过Button跳转到swiftui新窗体

发表评论

提供最优质的资源集合

立即查看 了解详情