前提
iOS15までは、PickerとForm(List)を組み合わせた際、自動的に画面遷移とinlinemodeのStyleになっていました(このサイトの一番後ろのイメージ)。
ところが、XcodeをアップデートしてiOS16に対応すると、デフォルトがmenuスタイルになってしまいました。
実現したいこと
iOS16でも今までと同様、画面遷移からのinlineスタイルにしたいです。
該当のソースコード
Swift
1import SwiftUI 2 3struct ContentView: View { 4 @State private var selectedInt = 0 5 var body: some View { 6 NavigationView { 7 List { 8 Picker(selection: selectedInt, label: Text(“選択”)) { 9 ForEach(0..<10) { v in 10 Text(“\(v)”).tag(v) 11 } 12 } 13 } 14 } 15 } 16}
試したこと
「swiftui iOS16 picker -photo」など様々な検索を行いましたが、解決策が見つかりませんでした。対応策のヒント等あればよろしくお願いいたします。
手元の環境は次の通りなのですが、
Xcode Version 14.0
このXcodeの内部にあるドキュメントを開くと、
(Quick Help inspectorから「Open in Developer Documentation」リンクをクリック)
PickerStyleのページには次のように記載されていました。
> PickerStyle
> Getting built-in picker styles
>
> static var automatic: DefaultPickerStyle
> static var inline: InlinePickerStyle
> static var menu: MenuPickerStyle
> static var radioGroup: RadioGroupPickerStyle
> static var segmented: SegmentedPickerStyle
> static var wheel: WheelPickerStyle
でも、インターネットの最新の公式のドキュメントを見ると次のように記載されていました。
「navigationLink」というものが追加されているみたいです。
> PickerStyle
> Getting built-in picker styles
>
> static var automatic: DefaultPickerStyle
> static var inline: InlinePickerStyle
> static var menu: MenuPickerStyle
> static var navigationLink: NavigationLinkPickerStyle
> static var radioGroup: RadioGroupPickerStyle
> static var segmented: SegmentedPickerStyle
> static var wheel: WheelPickerStyle
> https://developer.apple.com/documentation/swiftui/pickerstyle
navigationLinkのページではバージョンのところに「iOS 16.0+」と記載されていました。
> navigationLink
> 「iOS 16.0+」「iPadOS 16.0+」「Mac Catalyst 16.0+」「tvOS 16.0+」「watchOS 9.0+」
> https://developer.apple.com/documentation/swiftui/pickerstyle/navigationlink
App Storeを見るとXcode 14.0.1のアップデートがあるみたいでした。
Xcode14.0.1にアップデートして、
pickerStyleのmodifierにnavigationLinkを指定してみたら何か変わるでしょうか?
回答いただきありがとうございます。
14.0.1では確認できなかったのですが、14.1 beta版では「.pickerStyle(.navigationLink)」を指定したところ、希望していた挙動となりました!
本当にどのサイト見ても解決方法わからなかったので、教えていただき嬉しいです。
ありがとうございました!
(回答欄に同様の内容を掲載していただけると幸いです。)
コメントありがとうございます。
検索してもなかなか情報がないですよね・・
私自身ドキュメントを見ていたらたまたま見つけました。
でも、14.0のうちはNavigationLinkPickerStyleが使えないままというのはちょっとひどい感じがしますね・・
業務でSwiftを使ったことがなかったので勉強になりました。
自己解決にしていただいて良かったのですが、
コメントと同じ内容を回答欄にも書いておきますね。
回答1件
あなたの回答
tips
プレビュー