質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

543閲覧

他画面からリストの行数変更

pon3428

総合スコア14

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2022/12/20 06:49

編集2022/12/20 07:15

lineLimitを State、Bindingしています。

実現したいこと

他画面からListの行数を変更

発生している問題・エラーメッセージ

Cannot infer contextual base in reference to member 'lineLimit'

該当のソースコード

SwiftUI

1 2struct ContentView: View { 3@State var pinned = [""] 4@State var lineLimit = false 5 var body: some View { 6ZStack{ 7 NavigationLink { 8List{Section(header: Text("テキスト")){ForEach(0..<pinned.count) {index in NavigationLink(destination: SecondView(lineLimit, $lineLimit), label: {Text("セル表示内容")}) 9(lineLimit ? .lineLimit(5) : .lineLimit(10))} 10} 11 12}} 13 14}} 15 16struct SecondView: View { 17@Binding var lineLimit: Bool 18var body: some View { 19NavigationView { 20ZStack{ 21Toggle(isOn: $lineLimit) {Text("Toggle")} 22}} 23}} 24

試したこと

補足情報(FW/ツールのバージョンなど)

Xcodeのバージョンは14.1です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/12/20 07:43

SecondView(lineLimit, $lineLimit) の , を : にすれば良いかも。
pon3428

2022/12/20 07:50

Cannot infer contextual base in reference to member 'lineLimit' が 出てしまいます。
guest

回答1

0

ベストアンサー

List に lineLimit が存在しないため
エラーが発生していると思われます。

lineLimit は Text の機能だったと
記憶しています。

また、コメント欄の
hoshi-takanori さんの修正案も
適用する必要があります。

SwiftUI

1import SwiftUI 2 3struct ContentView: View { 4 @State var pinned = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"] 5 @State var lineLimit = false 6 var body: some View { 7 ZStack{ 8 NavigationView { 9 List{ 10 Section(header: Text("テキスト")){ 11 ForEach(0..<pinned.prefix(lineLimit ? 5 : 10).count, id: \.self) {index in NavigationLink(destination: SecondView(lineLimit: $lineLimit), label: {Text(pinned[index])}) 12 } 13 } 14 } 15 } 16 } 17 } 18} 19struct SecondView: View { 20 @Binding var lineLimit: Bool 21 var body: some View { 22 NavigationView { 23 ZStack{ 24 Toggle(isOn: $lineLimit) {Text("Toggle")} 25 } 26 } 27 } 28}

↑ List の行数を変更する場合

SwiftUI

1import SwiftUI 2 3struct ContentView: View { 4 @State var pinned = ["111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "test"] 5 @State var lineLimit = [false, false, false] 6 var body: some View { 7 ZStack{ 8 NavigationView { 9 List{ 10 Section(header: Text("テキスト")){ 11 ForEach(0..<pinned.count, id: \.self) {index in NavigationLink(destination: SecondView(lineLimit: $lineLimit[index]), label: {lineLimit[index] ? Text(pinned[index]).lineLimit(1) : Text(pinned[index]).lineLimit(2)}) 12 } 13 } 14 } 15 } 16 } 17 } 18} 19struct SecondView: View { 20 @Binding var lineLimit: Bool 21 var body: some View { 22 NavigationView { 23 ZStack{ 24 Toggle(isOn: $lineLimit) {Text("Toggle")} 25 } 26 } 27 } 28}

↑Text の行数を指定したい場合(lineLimit)

SwiftUI

1import SwiftUI 2 3struct ContentView: View { 4 @State var pinned = ["111112222233333", "111112222233333", "test"] 5 @State var lineLimit = [false, false, false] 6 var body: some View { 7 ZStack{ 8 NavigationView { 9 List{ 10 Section(header: Text("テキスト")){ 11 ForEach(0..<pinned.count, id: \.self) {index in NavigationLink(destination: SecondView(lineLimit: $lineLimit[index]), label: {lineLimit[index] ? Text(pinned[index].prefix(5)) : Text(pinned[index].prefix(10))}) 12 } 13 } 14 } 15 } 16 } 17 } 18} 19struct SecondView: View { 20 @Binding var lineLimit: Bool 21 var body: some View { 22 NavigationView { 23 ZStack{ 24 Toggle(isOn: $lineLimit) {Text("Toggle")} 25 } 26 } 27 } 28}

↑Text の文字数を指定したい場合(prefix)

投稿2022/12/21 02:48

編集2022/12/21 03:33
uni2

総合スコア254

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問