这是我的代码...
struct ContentView : View {
@State var showingTextField = false
@State var text = ""
var body: some View {
return VStack {
if showingTextField {
TextField($text)
}
Button(action: {
self.showingTextField.toggle()
}) {
Text ("Show")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是当文本字段变为可见时,使文本字段成为第一响应者(即,获得焦点并弹出键盘)。
我有一个显示从 API 获取数据的列表的基本视图。我想在从 API 检索数据时实现一个活动指示器。在 MVC 中,我们可以使用委托和协议,让视图控制器继承协议,在模型完成获取数据后,我们调用委托告诉视图控制器数据已完成检索(现在隐藏活动指示器等.) 如何在 SwiftUI 中实现类似的东西,它是 MVVM 风格?
我已经尝试从这个问题实现一个活动指示器,我只是不知道如何以及何时停止它:SwiftUI 中的活动指示器
我的 SourcesViewModel(它从 newsapi.org 获取新闻文章来源)
import UIKit
class SourcesViewModel: Identifiable {
let id = UUID()
let source: Sources
init(source: Sources) {
self.source = source
}
var name: String {
return self.source.sourceName
}
var description: String {
return self.source.sourceDescription
}
}
Run Code Online (Sandbox Code Playgroud)
我的 SourcesListViewModel:
import Combine
class SourcesListViewModel: ObservableObject {
init() {
fetchSources()
}
@Published var sources = [SourcesViewModel]()
private func fetchSources() {
NetworkManager.shared.getSourceData { (sources) in
self.sources …Run Code Online (Sandbox Code Playgroud) 如何在 WKWebView 中添加活动指示器,它会在网页加载时显示指示器并在加载时消失?
我查看了一些旧帖子,但无法弄清楚如何在 SwiftUI 中执行此操作,请参阅以下旧解决方案之一的链接 如何将活动指示器添加到 WKWebView (Swift 3)
当我想按下按钮显示加载指示器并且如果服务器返回成功响应则显示新视图时,我坚持了非常简单的步骤
在 UIKit 中这非常简单,但在 SwiftUI 中我坚持这样做。
没什么超级难的,但我卡在这里的是一个按钮,它是我的导航视图的一部分。请帮我推到新屏幕。
Button(action: {
// show indicator or animate
// call rest api service
// wait for callback and show next view or error alert
})
Run Code Online (Sandbox Code Playgroud)
我找到了一些链接,但不确定如何正确使用它。
不确定我需要PresentationButton或NavigationLink根本不知道,因为我已经有一个简单的按钮并且想要推送新的视图控制器。
与此问题非常相似的问题,但我没有发现它有用,因为我不知道如何逐步使用如何“创建隐藏的 NavigationLink 并绑定到该状态”
编辑: 我还发现这个视频答案看起来像我弄清楚如何进行导航。但仍需要弄清楚如何在按下按钮时显示活动指示器。