问题标签 [swiftui-environment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
821 浏览

swiftui - Swiftui,按钮网格视图

我在这里检查了几个关于网格视图的问题,但我的问题有点不同,我想为按钮创建一个网格视图,以便在按下每个按钮时导航到不同的视图,所以它看起来像这样的图像: 这是网格按钮看法

所以我在这里写了这段代码,但看起来我并没有很成功地得到我想要的东西,有没有更好的想法来实现这个设计作为网格视图?

0 投票
2 回答
152 浏览

ios - 如何将字符串数组传递给视图模型以在 swiftUI 中播放歌曲

我创建了一个模型并添加了嵌套结构。根据结构详细信息之一创建了一个数组,我想从模型中检索详细信息以查看模型以播放音乐。

我想检索这个“aURL”字符串并将其插入到播放函数中以播放音乐。

0 投票
0 回答
49 浏览

swift - swiftUi 的问题登录屏幕导航到 ViewController

我使用 SwiftUI 创建了一个登录屏幕。当我按下登录按钮(在验证电子邮件和密码后)时,它会导航到 ViewController。

登录状态存储在userDefault布尔值中,以供以后再次启动应用程序时使用。在SceneDelegate,userDefault中勾选——如果是true,则显示主屏幕;否则显示登录屏幕。

在 View Controller 中,我创建了一个itemBarLogout 按钮,当按下它时会导航回登录屏幕。

我设法实现了上述逻辑。当我成功登录然后在模拟器中关闭应用程序并再次打开时,就会出现问题。当我按下 Logout Bar 项目时,该应用程序没有响应并且不会导航回登录屏幕。

我尝试使用协调器模式但没有成功。任何帮助表示赞赏!

0 投票
1 回答
876 浏览

swift - SwiftUI-App 不符合协议“App”

我是编程的初学者,刚刚添加了一个自定义标签栏以允许在整个应用程序中导航。但是,由于我添加了属性包装器来让这种情况发生,我得到了错误:

'应用程序不符合协议'应用程序' '。

它迫使我添加 init() 协议存根,但我似乎无法让它工作 - 所以我可以通过代码运行而不会出现错误“从初始化程序返回而不初始化所有存储的属性”。我已经尝试了一切,但它仍然不会消失。

如果这是相关的,我昨晚更新了 Xcode,并且错误只是在我今天开始处理我的项目时才出现。

这是错误的来源

0 投票
1 回答
164 浏览

ios - 如何在 swiftUI 中的文本上显示 AM/PM?

我已经插入了一个计时器,所以时间会根据系统时钟而变化。问题是,它在没有上午/下午的情况下以数字显示(12:33)。请指导我解决这个问题。

这是我用来显示文本的代码。

这是我用来根据系统时间更新计时器的代码。

我的视图模型代码

0 投票
1 回答
505 浏览

swift - 如何在 SwiftUI 中使用 @State 和 fullScreenCover 在视图之间切换

我试图弄清楚如何在 SwiftUI 中使用 @State 和 fullScreenCover 在视图之间切换

我有一个主视图和 2 个简单视图(View1View2)。View1必须在点击"Show view 1"按钮时以及View2在按钮上键入时"Show view 2"打开。我还@State为此创建了 2 个变量,并使用.View1ActiveFullscreenview枚举)对其进行了初始化:

问题是View1即使我点击Show view 2按钮它也会不断显示。我认为当点击按钮并给 activeFullscreenView 变量赋值时.View2,它应该更改变量并显示fullScreenView.

我想这是因为我调用了showFullscreenView它并且它改变了变量,然后默认值是.View1所以它没有改变它。

也试过这个:

第二个假设是我不应该给这个变量初始值。但在这种情况下,它添加了一些不方便的额外初始化代码:

目前,我有以下代码存在所描述的问题:

任何与解决问题有关的帮助表示赞赏。关于如何实现使用 fullscreenCover 显示单独视图的相同结果的便捷方法表示赞赏。

使用 Xcode 12.4,最新的 iOS 14

0 投票
1 回答
335 浏览

swift - SwiftUI -> 线程 1:致命错误:未找到 ModelData 类型的 ObservableObject

我使用 SwiftUI 创建了一个应用程序,当我尝试显示一个按钮时,会出现以下错误消息:

当我尝试@EnvironmentObject显示我的应用程序的一个视图时尝试使用时会发生这种情况。

我的代码是

但是,视图的预览和实时预览工作正常

我知道我必须在某个地方传递我的环境对象,但不知道如何。我将不胜感激任何人的帮助。

0 投票
1 回答
153 浏览

ios - 当用户输入的时间低于预期时间时,如何在 swiftUI 中显示警报消息?

我正在构建一个警报应用程序,我只想在用户输入低于 2 小时的时间时显示一条弹出消息(警报消息),用户应该收到一条消息,如“请输入超过 2 小时的持续时间” ”。

这是我存储警报值的地方

我想在用户单击下图时显示消息

这是用户选择闹钟时间的另一个视图

请帮我解决这个问题!!

0 投票
1 回答
148 浏览

ios - 构建错误预览第一个 SwiftUI 视图

我第一次将 SwiftUI 整合到我的项目中!

不幸的是,我无法预览我添加到项目中的第一个 SwiftUI 文件。构建仅在预览时失败。失败就在我的测试中。

构建错误的步骤:

  1. 单击预览区域中的“恢复”按钮以获取新创建的 SwiftUI 视图。
  2. 构建失败...我单击“诊断”按钮:

诊断屏幕输出:

缺少必需的模块“JGProgressHUD”


SchemeBuildError:无法构建方案“MyApp”

缺少必需的模块“JGProgressHUD”

编译 AppTests.swift (x86_64):/Users/myname/Projects/MyApp/MyAppTests/Entities/AppTests.swift:11:8:错误:缺少必需的模块“JGProgressHUD”导入 MyApp ^

是的,我有通过 SPM 导入的 JGProgressHUD 库。

这就是我的测试类的样子 - 它在导入“MyApp”时失败,但仅用于 SwiftUI 的预览......应用程序或测试没有构建失败......

在“Import MyApp”行上失败。

这是我尝试过的:

  • 在网上到处搜索
  • 搞乱构建方案
  • 使用 JGProgressHUD 和测试做了一个示例项目,预览没有问题
  • 验证我的 swift 文件都没有添加到测试目标中 - 它们都不是,只有 xib 文件。
  • 将“import JGProgressHUD”添加到测试文件中,然后在 JGProgressHUD 的此导入行上预览构建失败。

我迫不及待地想使用 SwiftUI,但到目前为止,添加到一个新项目中似乎相当善变,而且我不知道还能去哪里看。对于我正在尝试做的事情来说,这是一个随机的问题,我完全不知道去哪里找。

关于检查或寻找什么的任何想法?

感谢 XCode 圣人的任何帮助!

0 投票
0 回答
710 浏览

ios - SwiftUI 具有 @Environment(\.presentationMode) 用于消除视图行为不端

我有一个@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>基于围绕某些逻辑的已发布值的自定义关闭操作的视图,如下所示:

此视图还有另一个选项来显示工作表

@Environment(\.presentationMode)这里的问题是当我QRCodeScannerView被初始化两次时,当我删除presentationMode时它工作正常。


更新 我在一个测试项目中尝试了同样的行为,它是一样的

它有同样的问题

截屏