Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NavigationStack在Xcode beta中的navigationDestination无法导航

NavigationStack在Xcode beta中的navigationDestination无法导航
EN

Stack Overflow用户
提问于 2022-07-24 19:10:46
回答 2查看 569关注 0票数 2

我仍然是SwiftUI框架的新手,我正在学习HackingWithSwift for NavigationStack。我遵循了所有的步骤,唯一的区别就是我的代码结果。我运行没有任何错误,就像在视频中一样,但我无法导航到我的详细目的地。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  struct ContentView: View {
   var destinations = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
   var body: some View {
    NavigationStack {
        List(destinations, id: \.self) { i in
            NavigationLink(value: i) {
                Label("Row \(i)", systemImage: "\(i).circle")
            }
        }
        .navigationDestination(for: Int.self) { i in
            Text("Detail \(i)")
        }
        .navigationTitle("Navigation")
     }
   }
  }

我的模拟器显示带有标签的行列表,但我无法导航。这可能是偶然的错误,因为这仍然是新的。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2022-07-24 19:17:34

List数据是一个String数组,但.navigationDestination值类型是Int

要解决问题,请修改.navigationDestination的数据类型,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.navigationDestination(for: String.self) { I in //modify here
        Text("Detail \(i)")
}
票数 2
EN

Stack Overflow用户

发布于 2022-07-25 03:32:02

对于静态的List数组有特殊的Int (和ForEach)语法,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct NavTestView: View {

  //let destinations = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]

  var body: some View {
   NavigationStack {
       List(1..<10) { i in
           NavigationLink(value: i) {
               Label("Row \(i)", systemImage: "\(i).circle")
           }
       }
       .navigationDestination(for: Int.self) { i in
           Text("Detail \(i)")
       }
       .navigationTitle("Navigation")
    }
  }
 }

如果您继续需要一个动态数组,即添加或删除项,您真的不应该误用API与id:\.self哈克,否则它会崩溃,您需要迁移到包含唯一标识符的属性的结构数组,甚至更好地将结构与提供id属性供List/ForEach自动使用的Identifiable保持一致,例如,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct ListItem: Identifiable {
    let id = UUID()
    var number: Int
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73103682

复制
相关文章
在 SwiftUI 中创建自适应的程序化导航方案
随着苹果对 iPadOS 的不断投入,越来越多的开发者都希望自己的应用能够在 iPad 中有更好的表现。尤其当用户开启了台前调度( Stage Manager )功能后,应用对不同视觉大小模式的兼容能力就越发显得重要。本文将就如何创建可自适应不同尺寸模式的程序化导航方案这一内容进行探讨。
东坡肘子
2022/12/16
4.3K0
在 SwiftUI 中创建自适应的程序化导航方案
SwiftUI 4.0 的全新导航系统
长久以来,开发者对 SwiftUI 的导航系统颇有微词。受 NavigationView 的能力限制,开发者需要动用各种技巧乃至黑科技才能实现一些本应具备基本功能(例如:返回根视图、向堆栈添加任意视图、返回任意层级视图 、Deep Link 跳转等 )。SwiftUI 4.0( iOS 16+ 、macOS 13+ )对导航系统作出了重大改变,提供了以视图堆栈为管理对象的新 API ,让开发者可以轻松实现编程式导航。本文将对新的导航系统作以介绍。
东坡肘子
2022/07/28
10.4K0
SwiftUI 4.0 的全新导航系统
解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug
众所周知,SwiftUI 是一个响应式框架,这意味着,当数据源发生变化时,框架会自动更新视图。同样,当我们想调整视图显示时,应直接对状态进行修改。但是,SwiftUI 中的一些系统控件并没有完全遵循响应式的设计原则,由此在某些情况下会出现严重的错误,影响用户体验,并使开发者无所适从。
东坡肘子
2023/09/06
3850
解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug
解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug
众所周知,SwiftUI 是一个响应式框架,这意味着,当数据源发生变化时,框架会自动更新视图。同样,当我们想调整视图显示时,应直接对状态进行修改。但是,SwiftUI 中的一些系统控件并没有完全遵循响应式的设计原则,由此在某些情况下会出现严重的错误,影响用户体验,并使开发者无所适从。
东坡肘子
2023/09/01
7830
解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug
Xcode14新特性(基于Xcode 14 Beta3)
在 2022 年 6 月的 WWDC 22 上 Apple 推出了 Xcode 14,相比较 Xcode 13,它的功能与性能都有了巨大的提升。
YungFan
2022/06/16
3.3K0
xcode7中KSImageNamed-Xcode-master插件无法使用问题的解决
Xcode 升级到7之后VVDocumenter-Xcode,OMColorSense,KSImageNamed等一系列的插件失效的解决办法,以及不小心误点了 Skipbundle 的解决办法。
用户1451823
2018/09/13
9600
xcode7中KSImageNamed-Xcode-master插件无法使用问题的解决
在 Xcode 9 中搭建 Python
macOS、Xcode 9、Python(macOS 默认安装了 Python2.7)。
py3study
2020/01/09
1.8K0
在XCODE中替换__MyCompanyName__的名字
在使用XCODE的时候,在注释中有一段公司版权的信息,但是始终是__MyCompanyName__,而且也没找到相应的界面去更改。后来发现,可以通过在命令行使用如下命令,进行更改:
EltonZheng
2021/01/26
1.2K0
Xcode8.3.2 无法在appStore更新解决办法
以前看到下载带有病毒的Xcode人,觉得这些人为什么会乱找地方下载不去appStore,在appStore下多方便,除了慢点挺傻瓜的。
星宇大前端
2019/01/15
8250
在XCode中如何使用高级查询
对于一个框架来说,仅有基本的CURD不行,NewLife.XCode同时还提供了一个非常宽松的方式来使用高级查询,以满足各种复杂的查询需求。 (本文同样适用于其它任何数据访问框架) 先上图看一个复杂查询的效果图: image.png 这里有8个固定的查询条件和1个模糊查询条件,加上多表关联(7张表)、分页、统计,如果用传统的做法,这个查询会非常的复杂。 这个页面有XCode实现,核心查询部分共100多行代码,包括一个查询、一个总记录数分页、两个统计(就是业绩、提成等的统计),看看高级查询代码: image
大石头
2018/01/15
5.1K0
在XCode中如何使用高级查询
在 Xcode 中添加 Swift package 依赖
到目前为止,我们一直在编码的所有内容都是我们从头开始构建的内容,因此您可以确切地了解其工作原理并将这些技能应用于自己的项目。但是,有时候,从头开始写东西是有风险的:也许代码很复杂,也许很容易出错,也许它经常更改,或者其他各种原因,这就是模块依赖存在的原因——能够获取第三方代码并在我们的项目中使用它。
韦弦zhy
2020/09/18
7K0
在 Xcode 中添加 Swift package 依赖
XCode 无法在新 iOS 系统下运行程序 configuration is unsupported running iOS which is not supported by Xcode
一、问题 The current device configuration is unsupported. This iPhone XS Max is running iOS 14.0 (18A373), which is not supported by Xcode 11.7. 也可能是:的iPhone is not available. Please reconnect the device. 旧版 XCode 无法再新版 iOS 系统下调试 二、解决 从此链接下载 iOS 14 支持文件:
圆号本昊
2021/09/24
7980
在Xcode的模拟器中的textField中输入中文
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48895361
用户1451823
2018/09/13
3.5K0
在Xcode的模拟器中的textField中输入中文
在Xcode7中搭建python开发环境
我使用的版本为Version 7.3 (7D175),关于基础配置部分,参考了Xcode6中搭建python开发环境的方法
py3study
2020/01/08
8630
在Xcode7中搭建python开发环境
在 Flutter 中创建漂亮的底部导航栏
ConvexBottomBar是一个底部导航栏组件,用于展现凸起的TAB效果,支持多种内置样式与动画交互。你可以在https://appbar.codemagic.app上找到在线样例。
徐建国
2022/03/30
8.2K0
在 Flutter 中创建漂亮的底部导航栏
iOS16 适配指南(基于Xcode 14 Beta3)
iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式中打开开发者模式。新增 UICalendarView,可以显示日期并支持单选与多选日期。新增 UIPasteControl 用于读取剪贴板中的内容,否则跨 App 读取时会弹出对话框让用户进行选择是否同意。新增一个交互 UIEditMenuInteraction,用于取代 UIMenuController 与 UIMenuItem。新增一个交互 UIFindInteraction 用于文本内容查找与替换。新增 LARightStor
YungFan
2022/06/14
6.8K6
iOS 15 Beta升级卡死在更新进程,无法启动怎么办?
2021苹果全球开发者大会结束后,大批果粉迫不及待的尝试升级iOS 15测试版本,想第一时间体验新功能。
莉莉的碎碎念
2021/06/18
2.2K0
Git在Xcode中的配置与使用常见问题总结
书接上回提出的Git在Xcode中的配置与使用常见问题4个问题 问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库? 问题3,如何在Xcode中克隆远程服务器代码库到本地? 问题4,如何使用Xcode获取远程代码库数据,并解决冲突问题? 1、问题1 创建代码库有两种方式,一种是新建工程时候创建,另一种是把现有的工程拷贝到代码库下,再初始化代码库。 如果是新建工程时候创建,在保存文件时候可以选择是否创建,如果勾选“Create local g
用户1941540
2018/05/11
3.6K0
iOS17适配指南之SwiftData(二)
前文iOS17适配指南之SwiftData(一)使用 UIKit 对 SwiftData 进行了简单使用。其实 SwiftData 配合 SwiftUI 才是 Apple 的初心,因此本文以 SwiftUI 的视角进行 SwiftData 的使用讲解。
YungFan
2023/10/08
6080
iOS17适配指南之SwiftData(二)
解决CloudKit在Electron中无法登录的问题
最近CloudKit Web端授权页面更新后中使用了CMD模块化的东西,因此会检查require是否存在,本意是存在的话就会按照CMD的方式加载js模块,但是Electron中默认通过require来加载electron模块或者npm模块,这样问题就来了,Electron中的Cloudkit授权页面就会报错!
小刀c
2022/08/16
2.9K0
解决CloudKit在Electron中无法登录的问题

相似问题

NavigationStack在XCode 14 Beta中的体渲染问题

17

如何在新NavigationStack.navigationDestination中传递绑定到子视图

517

使用NavigationStack swiftUI导航

113

无法在Xcode 6 beta 5中编译EZAudio

12

无法在Xcode 6 beta 6中添加帐户

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文