別 ViewのTextEditorへの分岐による代入

Listの中でNavigationLinkを使用しています。

配列をそれぞれ別Viewに入れさらにその配列のテキストを別ViewのTextEditorに入れたいです

実現したいこと

配列をそれぞれのセルタップ毎に別Viewで表示しさらにそれらの配列を別ViewのTextEditorに入れたいです

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

Expected ':' after '? ...' in ternary expression

該当のソースコード

SwiftUI

var passedPinned: [String]? struct ContentView: View { var aFolder = ["a"] var bFolder = ["b"] var cFolder = ["c"] var dFolder = [folderRow] var body: some View { NavigationView { List{ Section(header: Text("テキスト")) { ForEach(0..<3) { index in NavigationLink(destination: ArrayView(row: (index == 0 ? aFolder : (index == 1 ? bFolder : cFolder))), label: index == 0 ? {folderRow(rowArray: aFolder, rowImageString: "heart", rowTitle: "Like")} : (index == 1 ? {folderRow(rowArray: bFolder, rowImageString: "trash", rowTitle: "Dust")} : {folderRow(rowArray: cFolder, rowImageString: "folder", rowTitle: "Folder") : {folderRow(rowArray: dFolder, rowImageString: "folder", rowTitle: "\(yourRowTitle)")})) } } } } } } struct ArrayView: View { @State var row : [String] var body: some View { List{ Section(header: Text("テキスト")) { ForEach(0..<self.row.count) { index in NavigationLink(destination: AnotherView(textEditorText: (index == ContentView.aFolder[index] ? ContentView.aFolder[index] : (index == ContentView.bFolder[index] ? ContentView.bFolder[index] : (ContentView.cFolder[index] ? ContentView.cFolder[index], (ContentView.dFolder[index] ? ContentView.dFolder[index], index: index)), label: {Text(index == ContentView.aFolder[index] ? ContentView.aFolder[index] : (ContentView.bFolder[index] ? ContentView.bFolder[index] : (ContentView.cFolder[index] ? ContentView.cFolder[index], ContentView.dFolder[index] ? ContentView.dFolder[index])))}} .onAppear(perform: { if let recive = passedPinned { row = recive } }) .onDisappear(perform: {passedPinned = row}) } } } } struct folderRow: View { var rowArray: [String] = [] var rowImageString = "" var rowTitle: String = "" var body: some View { HStack{ Image(systemName: rowImageString) Text(rowTitle) Text("\(rowArray.count)") } }} struct AnotherView: View { @State var textEditorText: String var index = 0 var body: some View { TextEditor(text: $textEditorText) .frame(maxWidth: .infinity, maxHeight: .infinity) .onChange(of: textEditorText){ value in passedPinned![index] = value } } }

試したこと

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

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

dFolderには別Viewから任意で追加します。

コメントを投稿

0 コメント