SwiftUI のフォームでピッカーを作成しています。ピッカーで新しい要素を選択すると、ビューがフォームに戻ったときに、ピッカーの行が選択解除されません。これが私が意味することのスクリーンショットです。ピッカー行はこのようにグレー表示されたままです。
これは Xcode 11.3 のバグであるという以前の回答を読みましたが、Xcode 12 ベータ 4 を実行していて、これがまだバグであるかどうかはわかりません。
これは私がピッカーを作成する方法です:
struct SettingsView: View {
@State private var currentSelection = 1
var body: some View {
NavigationView {
Form {
Section {
Picker("Test 2", selection: $currentSelection) {
ForEach(1 ...< 100) { i in
Text(String(i)).tag(i)
}
}
}
}
}
}
}
これが私のContentViewで、そこからSettingsViewを提示しています:
enum ActiveSheet: Identifiable {
case photoPicker, settings
var id: Int {
self.hashValue
}
}
struct ContentView: View {
@State var activeSheet: ActiveSheet?
var body: some View {
NavigationView {
VStack {
Text("Hello world")
Button("Select Photo") {
self.activeSheet = .photoPicker
}
}
.navigationBarTitle(Text("Title"), displayMode: .inline)
.navigationBarItems(trailing: Button(action: {
self.activeSheet = .settings
}, label: {
Image(systemName: "gear")
.imageScale(.large)
}))
}
.sheet(item: $activeSheet) { item in
if item == .photoPicker {
ImagePicker(selectedImage: $image, sourceType: .photoLibrary)
} else {
SettingsView()
}
}
}
}
編集:私は真新しいプロジェクトを作成しました.これは唯一のコードです:
import SwiftUI
struct ContentView: View {
@State private var currentSelection = 0
var body: some View {
NavigationView {
Form {
Section {
Picker("Test Picker", selection: $currentSelection) {
ForEach(0 ..< 100) { i in
Text(String(i)).tag(i)
}
}
}
}.navigationBarTitle(Text("Test"))
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
問題はまだ解決していません。