我有一个包含多个部分和行的导航列表。我选择一行 foo,它导航到我想要的视图。但是,当我返回根视图时,无法选择行 foo。我点击行 foo 并没有任何反应。
我点击行栏,该行将我发送到它的视图。回到根视图。然后我无法选择行栏,但现在行 foo 有效。
这是 SwiftUI 中的错误还是设计行为?当我离开视图时,我需要做些什么来重置视图?
NavigationView {
List {
Section(header: shoppingListData.lastItemSection.sectionHeader, footer: shoppingListData.lastItemSection.sectionFooter) {
ForEach(0..<shoppingListData.lastItemSection.sectionRows.count) { index in
ShoppingItemRow(shoppingListData: self.shoppingListData,
rowItem: self.shoppingListData.lastItemSection.sectionRows[index])
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是另一个具有相同问题的案例。我只能选择表单的选择器行一次。如果我回到根视图,然后又回到这个视图,我可以再次选择选择器。
如果我将pickerStyle 设置为SegmentedPickerStyle(),我可以多次选择它。
struct ShoppingItemPage: View {
@ObservedObject var shoppingListData: ShoppingListData
@ObservedObject var shoppingItem: ShoppingItems
var body: some View {
Form {
Section(header: Text("Packages")) {
HStack {
Text("Quantity (\(shoppingItem.myUnit.myName))")
TextField("Quantity (\(shoppingItem.myUnit.myName))", value: $shoppingItem.stdQty, formatter: basicFormat)
.textFieldStyle(RoundedBorderTextFieldStyle())
.keyboardType(.numbersAndPunctuation)
Toggle("Need", isOn: $shoppingItem.needed)
}
HStack {
Text("Item Name")
TextField("Item Name", text: …Run Code Online (Sandbox Code Playgroud) 我正在使用 SwiftUI 创建一个 iOS 应用程序。我正在使用:
但是,该应用程序在两个设备上的行为不同。例如在物理 iPad 上,NavigationLink只能使用一次。
这是我的第一个 iOS 应用程序。所以我想知道如何规避或解决这些类型的错误?
import SwiftUI
enum ExerciseType: String, CaseIterable, Codable, Hashable {
case vowels = "Vowels"
case special = "Special Characters"
case small = "Small Characters"
case long = "Long Vovels"
}
enum LessonType: String, CaseIterable, Codable, Hashable {
case hiragana = "Introduction to Hiragana"
case katakana = "Introduction to Katakana"
case kanji = "Introduction …Run Code Online (Sandbox Code Playgroud)