当前位置: 首页 > 面试题库 >

SwiftUI:如何在单击按钮时显示视图?

满俊楠
2023-03-14
问题内容

我正在尝试使用Apple的 SwiftUI 制作一个应用程序,我需要有两个按钮在同一List行中显示两个不同的视图。

我使用 Xcode beta 7MacOS Catalina beta 7
。我尝试添加一个Button表示视图的视图,但是无法单击它,而当我尝试在Button外部进行简单List单击并单击该AddList()视图时,该视图没有出现。我也尝试过添加一个navigationButton内部,navigationButton但是它也不起作用。tapAction单击时也无法添加,视图仍然不会出现

NavigationView {
            List(0..<5) { item in
                NavigationLink(destination: ContentOfList()) {
                    Text("hello") // dummy text
                    Spacer()
                    Text("edit")
                        .tapAction {
                            AddList() // This is the view I want to present
                    }
                }
                }.navigationBarItems(trailing: NavigationLink(destination: AddList(), label: { // doesn't work within navigationBarItems
                    Image(systemName: "plus.circle.fill")
                }))
        }

我希望该AddList()视图出现,但在两种情况下却不会。


问题答案:

改进版本(SwiftUI,iOS 13 beta 7)

消除由.sheet修饰符显示的模态的解决方案也相同。

import SwiftUI

struct DetailView: View {
    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
    var body: some View {
        Button(
            "Here is Detail View. Tap to go back.",
            action: { self.presentationMode.wrappedValue.dismiss() }
        )
    }
}

struct RootView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: DetailView())
            { Text("I am Root. Tap for Detail View.") }
        }
    }
}

struct ContentView: View {
    var body: some View {
        NavigationView {
            RootView()
        }
    }
}


 类似资料:
  • 我用的是Android Studio2.2,最小sdk的项目是23。 请帮助我做所需的代码。

  • 链接到我正在尝试刮取的页面: https://www.nytimes.com/reviews/dining 因为这个页面有一个“show more”按钮,所以我需要Selenium自动反复单击“show more”按钮,然后以某种方式使用Beauty soup来获取页面上每个餐厅评论的链接。在下面的照片中,我想获取的链接位于https://...onigiri.html" 迄今为止的代码: 我如何

  • 我有下面的div,希望在单击按钮时显示它。 我在按钮点击事件中使用这个jquery代码。 $('.container collapse')。removeClass('.container collapse')。addClass(“容器”); 为什么现在不显示div,因为我已经改变了类? 它抛出一个错误未捕获的类型错误:$(...)。

  • 在我的编程课上的一个个人项目中,我遇到了一个我没想到会遇到的问题。当点击菜单按钮项时,我想在窗格中显示一个3D形状,我在互联网上搜索了50-100种不同的方法(或者很好的粗略估计),但没有找到任何东西。我一直困惑于如何在单击菜单项时显示3D形状,以下是我的源代码(fxml):

  • Javascript(jQuery)代码 HTML/EJS代码 我读过的一些不起作用的帖子: 如何在单击按钮时通过动画显示视图? 尝试在单击按钮时显示div

  • 按钮点击页面后刷新并重定向到另一个页面。在我的情况下,点击按钮后,我给页面刷新超时,但点击按钮后,它显示超时异常,没有时间等待。 例外: 失败:createEventTest组织。openqa。硒。TimeoutException:等待页面加载时超时。命令持续时间或超时:15.08秒构建信息:版本:“2.53.0”,修订版:“35ae25b1534ae328c771e0856c93e187490c