问题标签 [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 投票
0 回答
115 浏览

swift - 加载 Core Data 数据(iOS 和 swiftUI)

我正在开发一个应用程序,我需要保存数据,所以我使用 Core Data,不幸的是我不是 Core Data 专家

当我第一次运行该应用程序时,它可以工作并保存数据(我检查了 *.sqlit 文件),但如果重新运行该应用程序会给我这个错误

我有一个环境对象

SceneDelegate.swift

PU.swift

PUWorkpace.swift

和一些功能

获取数据

什么会导致错误以及如何解决?

0 投票
0 回答
246 浏览

swiftui - SwiftUI - 使用 CLLocationManager 和 CLGeocoder 在 API 调用中的位置

我为此苦苦挣扎了很长时间,却没有找到我错的地方(我知道我错了)。

我有一个带有电话位置的 API 调用(这个正在工作),但我想要通过文本字段输入手动位置的相同 API 调用(使用地理编码来检索纬度/经度)。地理编码部分正常且已更新,但未在 API 调用中传递。

我还希望在使用电话位置的专用按钮清除 TextField 时触发此 API 调用。

请问,我错过了什么?谢谢你的帮助。

更新:这适用于 Xcode 12.2 beta 2,应该适用于 Xcode 12.0.1

这是代码:

我的模特

我的视图模型

位置管理器

风景

0 投票
1 回答
167 浏览

swiftui - 我们如何在 SwiftUI 中找出 iPad 的方向,自动获取通知或使用功能获取更新?

我想在用户更改 iPad 方向时收到通知。在 UIKit 中这很容易,但我不知道如何使用 SwiftUI 获取这些信息?

0 投票
1 回答
214 浏览

swift - 如何在 SwiftUI 中创建 UISearchBar

我正在尝试创建自己的 SwiftUI 版本UISearchBar,用于学习目的。

我已经按照这个教程

此时我的搜索栏结构是这样的:

但问题就在这里。

当我在 ContentView 使用这个搜索栏时,我希望搜索文本变量是这样的:

因为搜索文本的值必须传播到其他界面元素,这将对变化做出反应。

但是后来我遇到了这个错误SearchBarUI,指向globalVariables.searchText

我该如何解决?

0 投票
0 回答
113 浏览

swiftui - SwiftUI 最佳实践:View 是否应该对单例有一个常量,它们是否应该在 Environment 中传递?

在使用 Core Data 的 SwiftUI 项目的 Xcode 12 模板中,Apple 提供了以下代码:

在这种情况下,persistenceController 是一个单例。

下面的代码有什么区别,单例是同时初始化和传递的?为什么我们对单例使用常量?

另外,将这个单例提供给环境有什么好处吗?我们不能PersistenceController.shared.container.viewContext直接在子视图中使用吗?

我问是因为我的应用程序中的服务单例很少,但我不想从主App视图而是在子视图中初始化它们。

0 投票
1 回答
69 浏览

swiftui - 具有 ObservableObject 属性的 ObservableObject 未触发 SwiftUI 更新

如您所见,我正在定义一个全局状态(“NavigationState”)来处理应用程序的导航(即选项卡选择)。因此,我有一个 ObservableObject (NavigationState),它将具有每个屏幕导航状态的属性(即 ContentViewNavigationState - 另一个 ObservableObject)。

实际行为

在这个例子中,我在 DispatchQueue.asyncAfter 中修改 App.swift 文件中的状态,状态正在改变(因为 ContentView 的 onReceive 修饰符正在显示更新值)但没有触发 ContentView 中的任何更新。

预期行为

应根据状态更改所选选项卡。

  • 有趣的是,如果我还修改了另一个属性(即 commented selectedTab),在这种情况下会触发更新,但不是仅更新 contentViewNavigation 的属性时。
0 投票
1 回答
92 浏览

swiftui - SwiftUI 列表内容通过选择重置

这是我的问题:MainView显示ChildView并给它EnvironmentObject一个包含一组选定项目的内容。

ChildView显示可选项目列表(示例中为 2 个项目),并在出现时加载列表。

问题是ChildView当我点击任何行时,内容会重置为其原始值(示例中的 1 项)。

我试图使我的代码尽可能紧凑。

如果我不使用环境对象没有问题,但不知道如何导致列表重置。

0 投票
1 回答
34 浏览

swiftui - 在 ObservedObject 中操作 EnvironmentObject 而不更新整个视图

使用包装器允许我们将 EnvironmentObject 向下传递到 ObservedObject。不错的方法..

但是,如果您想在 ViewObject 中操作 userData 而不是每次都创建一个全新的 ViewObject 怎么办?

在我的应用程序中,我更改 EnvironmentObject 后重新创建了整个视图,但我不知道如何避免这种情况。

0 投票
1 回答
411 浏览

ios - 有没有办法覆盖视图修饰符?

我有一个自定义TextField,希望能够在 上使用.keyboardType(.numberPad)修饰符,CustomTextInputField而不必通过初始化程序发送它。这是否可以覆盖修饰符或通过环境访问键盘类型,还有其他建议吗?

0 投票
1 回答
99 浏览

swift - 无法从使用函数构造的子视图访问 @EnvironmentObject

我正在尝试将 EnvironmentObject 传递给子视图,但对以下代码没有运气。

如果我content()?.activeView用一个简单的视图替换,例如TestView()然后我能够成功地打印出TestView() 中的userData 变量。但就目前而言,我在尝试访问 ViewOne() 中的 userData 时遇到了崩溃,即使 ViewOne 与 TestView() 相同。

知道我做错了什么吗?