質問編集履歴

8

修正

2023/04/01 05:44

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -129,7 +129,7 @@
129
129
  NavigationLink {
130
130
  AnotherAnotherView(item: Item)
131
131
  } label: {
132
- Image(systemName: "heart")
132
+ Text(item.text ?? "")
133
133
  }
134
134
 
135
135
  で遷移するのですが、何がちがうのでしょうか

7

追記

2023/03/30 22:11

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,62 @@
77
77
 
78
78
  Xcode14.1
79
79
 
80
+ ### 追記
81
+
82
+ 新しく立てようと思いましたが、
83
+
84
+ わかりやすいようにここにしました。
85
+
86
+ ToolbarItem {
87
+ NavigationLink {
88
+ AnotherAnotherView(item: Item)
89
+ } label: {
90
+ Image(systemName: "heart")
91
+ }
92
+ }
93
+
94
+ ---
95
+
96
+ struct AnotherAnotherView: View {
97
+
98
+ @Environment(\.managedObjectContext) private var viewContext
99
+ @State var textEditorText = ""
100
+ var item: Item
101
+
102
+ var body: some View {
103
+ TextEditor(text: $textEditorText).frame(width: .infinity, height: .infinity)
104
+
105
+ .toolbar { ToolbarItem(placement: .navigationBarLeading){ Button(action: {additem()}) {Image(systemName: "heart")}} }
106
+ }
107
+
108
+ func additem () {
109
+ withAnimation {
110
+ item.text = textEditorText
111
+
112
+ do {
113
+ try viewContext.save()
114
+ } catch {
115
+ let nsError = error as NSError
116
+ fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
117
+ }
118
+ }
119
+ }}
120
+
121
+ とすると、
122
+
123
+ Cannot convert value of type 'Item.Type' to expected argument type 'Item'
124
+
125
+ のエラーが出てしまいます。
126
+
127
+ ListのNavigationLinkでは
128
+
129
+ NavigationLink {
130
+ AnotherAnotherView(item: Item)
131
+ } label: {
132
+ Image(systemName: "heart")
133
+ }
134
+
135
+ で遷移するのですが、何がちがうのでしょうか
136
+
137
+ itemとItemの大文字 小文字がみづらくて、すみません
138
+

6

修正

2023/03/29 06:36

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ### 前提
6
6
 
7
- EntityでtextsをBinary Dataで設定、textを Stringで設定しています。textはString型として設定しています。
7
+ EntityでtextsをBinary Dataで設定、textを Stringで設定しています。
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
@@ -35,16 +35,6 @@
35
35
  }
36
36
  }
37
37
  .onDelete(perform: deleteItems)
38
- }
39
- .toolbar {
40
- #if os(iOS)
41
- ToolbarItem(placement: .navigationBarTrailing) {
42
- EditButton()
43
- }
44
- #endif
45
- ToolbarItem {
46
- Button(action: addItem) {
47
- Label("Add Item", systemImage: "plus")
48
38
  }
49
39
  }
50
40
  }

5

訂正

2023/03/29 06:16

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -29,7 +29,7 @@
29
29
  List {
30
30
  ForEach(items) { item in
31
31
  NavigationLink {
32
- Text("Item at \(item.timestamp!, formatter: itemFormatter)")
32
+ AnotherView(textEditorText: Text(item.texts[index])
33
33
  } label: {
34
34
  Text(item.text ?? "")
35
35
  }

4

訂正

2023/03/29 06:14

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ### 前提
6
6
 
7
- EntityでtextsをBinary Dataで設定、textを Stringで設定しています。
7
+ EntityでtextsをBinary Dataで設定、textを Stringで設定しています。textはString型として設定しています。
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
@@ -15,11 +15,43 @@
15
15
  ### 該当のソースコード
16
16
 
17
17
  ```SwiftUI
18
+
19
+ struct ContentView: View {
20
+ @Environment(\.managedObjectContext) private var viewContext
21
+
22
+ @FetchRequest(
23
+ sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)],
24
+ animation: .default)
25
+ private var items: FetchedResults<Item>
26
+
27
+ var body: some View {
28
+ NavigationView {
29
+ List {
30
+ ForEach(items) { item in
18
- NavigationLink {
31
+ NavigationLink {
19
- AnotherView(textEditorText: Text(items.texts[index]))
32
+ Text("Item at \(item.timestamp!, formatter: itemFormatter)")
20
33
  } label: {
21
34
  Text(item.text ?? "")
22
35
  }
36
+ }
37
+ .onDelete(perform: deleteItems)
38
+ }
39
+ .toolbar {
40
+ #if os(iOS)
41
+ ToolbarItem(placement: .navigationBarTrailing) {
42
+ EditButton()
43
+ }
44
+ #endif
45
+ ToolbarItem {
46
+ Button(action: addItem) {
47
+ Label("Add Item", systemImage: "plus")
48
+ }
49
+ }
50
+ }
51
+ Text("Select an item")
52
+ }
53
+ }
54
+ }
23
55
 
24
56
  -
25
57
 

3

訂正

2023/03/29 06:10

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,30 @@
20
20
  } label: {
21
21
  Text(item.text ?? "")
22
22
  }
23
+
24
+ -
25
+
26
+ struct AnotherView: View {
27
+ @State var textEditorText = ""
28
+ var body: some View {
29
+ TextEditor(text: $textEditorText).frame(width: .infinity, height: .infinity)
30
+ .toolbar { ToolbarItem(placement: .bottomBar){ Button(action: {additem()}) {Image(systemName: "heart")}} }
31
+ }}
32
+
33
+ func additem () {
34
+ withAnimation {
35
+ let newItem = Item(context: viewContext)
36
+ Item.texts.append(textEditorText)
37
+
38
+ do {
39
+ try viewContext.save()
40
+ } catch {
41
+ let nsError = error as NSError
42
+ fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
43
+ }
44
+ }
45
+ }}
46
+
23
47
  ```
24
48
 
25
49
  ### 試したこと

2

訂正

2023/03/29 01:42

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ```SwiftUI
18
18
  NavigationLink {
19
- AnotherView(textEditorText: Text(items.memo[index]))
19
+ AnotherView(textEditorText: Text(items.texts[index]))
20
20
  } label: {
21
21
  Text(item.text ?? "")
22
22
  }

1

訂正

2023/03/29 01:41

投稿

sato31
sato31

スコア8

test CHANGED
File without changes
test CHANGED
@@ -9,7 +9,7 @@
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
11
  ```
12
- エラーメッセージ
12
+ Referencing subscript 'subscript(dynamicMember:)' requires wrapper 'Binding<FetchRequest<Item>.Configuration>'
13
13
  ```
14
14
 
15
15
  ### 該当のソースコード