如何在 swift UI 中单击按钮时从 swift UI 导航到情节提要?

Posted

技术标签:

【中文标题】如何在 swift UI 中单击按钮时从 swift UI 导航到情节提要?【英文标题】:How to navigate from swift UI to storyboard on button click in swift UI? 【发布时间】:2021-08-01 12:12:51 【问题描述】:

我正在开发一个同时具有 swiftUI 和情节提要的应用程序。我在 swift UI 中有一个按钮。单击此按钮后,我需要导航到情节提要屏幕。我尝试了下面的代码,但没有被调用。请帮忙....

在我的swiftUI中,按钮代码如下,

    Button(action: TestController()
                                    
                                , label:
                                    
                                        Text("Click me").foregroundColor(.white)
                                        Image(systemName: "chevron.forward.2").imageScale(.large))



struct TestController: UIViewControllerRepresentable 
    
    func makeUIViewController(context: Context) -> some UIViewController 
        let storyboard = UIStoryboard(name: "test", bundle: Bundle.main)
        let controller = storyboard.instantiateViewController(identifier: "testView")
        return controller
    
    
    func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) 
       
    

请帮帮我...

【问题讨论】:

"我尝试了下面的代码,但它没有被调用" 首先,下面的词不是形容词。其次,什么没有被调用? 我相信你应该使用instantiateViewController(withIdentifier:),但我不确定这是否是问题。 【参考方案1】:

NavigationLinkNavigationView 一起使用

struct MyTestView: View 
    var body: some View 
        NavigationView 
            NavigationLink(
                destination: TestController(),
                label: 
                    Text("Click me").foregroundColor(.white)
                    Image(systemName: "chevron.forward.2").imageScale(.large)
            )
        
    

【讨论】:

可能有不同的方法。但我的要求是这样......因为它是现有代码并且由于旧功能而无法更改 UI 元素【参考方案2】:

我在这里找到了解决方案,

How to show NavigationLink as a button in SwiftUI

这很好用,

Button(action: 
    print("Floating Button Click")
, label: 
    NavigationLink(destination: AddItemView()) 
         Text("Open View")
     
)

【讨论】:

为什么不使用直接导航线????不需要按钮。

以上是关于如何在 swift UI 中单击按钮时从 swift UI 导航到情节提要?的主要内容,如果未能解决你的问题,请参考以下文章

Swift,如何在单击时从自定义注释中获取信息

Swift XCUITest:如何在执行 UI 测试时单击 UIImagePickerController() 的默认“选择”按钮?

如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图

我将如何在按钮单击时从 uiview 中删除 UIBezierPath。?

如何在图像按钮单击时从Gridview获取ID。

单击时从循环中禁用按钮