SwiftUI:通过Face / Touch ID进行身份验证后,如何导航到另一个屏幕

在一个使用SwiftUI的非常简单的应用程序中,我有两个视图,HomeViewDetailView

  1. HomeViewList,其项目类型为Item。此类型具有一个名为isLocked的属性。
  2. DetailView是显示所选项目名称的简单视图。
  3. BiomertyLAContext的包装,该包装调用生物测定评估并以简单的Result<Bool,Error>类型返回结果。

在使用Face / Touch ID进行身份验证后,如何将其DetailView属性设置为isLocked的项目导航到true,仅成功吗?

// Item

struct Item
{
    name: String
    isLocked: Bool
}
// Row

struct Row: View
{
    @Binding var item: Item

    var body: some View
    {
        HStack
        {
            Image(systemName: "lock.fill")
            Text($item.name)
        }
    }
}
// HomeView

struct HomeView: View
{
    @State private var items: [Item] = [
        Item(name: "Item A",isLocked: false),Item(name: "Item B",isLocked: true)
    ]

    var body: some View
    {
        NavigationView
        {
            List(items,id: \.self)
            {
                if !item.isLocked
                {
                    NavigationLink(destination: DetailView(item: $item))
                    {
                        Row(item: $item)
                    }
                }
                else
                {
                    Row(item: $item)
                    .onTapGesture
                    {
                        Biometry.authenticate
                        { result in
                            if case.failure = result
                            {

                            }
                            else
                            {
                                // We endup here,because the Face/Touch ID
                                // authentication was successful. Therefore,// it is here that I would like to
                                // navigate to the detail screen.
                            }
                        }
                    }
                }
            }
        }
    }
}
// DetailView

struct DetailView: View
{
    @Binding var item: Item

    var body: some View
    {
        Text($item.name)
    }
}
Jack2090 回答:SwiftUI:通过Face / Touch ID进行身份验证后,如何导航到另一个屏幕

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3135340.html

大家都在问