Skip to content

Commit 90d5454

Browse files
committed
reflects textfield value in different view only with swiftui wrappers
1 parent e4da5d7 commit 90d5454

File tree

13 files changed

+948
-0
lines changed

13 files changed

+948
-0
lines changed

swiftui-test.xcodeproj/project.pbxproj

Lines changed: 600 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"colors" : [
3+
{
4+
"idiom" : "universal"
5+
}
6+
],
7+
"info" : {
8+
"author" : "xcode",
9+
"version" : 1
10+
}
11+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "iphone",
5+
"scale" : "2x",
6+
"size" : "20x20"
7+
},
8+
{
9+
"idiom" : "iphone",
10+
"scale" : "3x",
11+
"size" : "20x20"
12+
},
13+
{
14+
"idiom" : "iphone",
15+
"scale" : "2x",
16+
"size" : "29x29"
17+
},
18+
{
19+
"idiom" : "iphone",
20+
"scale" : "3x",
21+
"size" : "29x29"
22+
},
23+
{
24+
"idiom" : "iphone",
25+
"scale" : "2x",
26+
"size" : "40x40"
27+
},
28+
{
29+
"idiom" : "iphone",
30+
"scale" : "3x",
31+
"size" : "40x40"
32+
},
33+
{
34+
"idiom" : "iphone",
35+
"scale" : "2x",
36+
"size" : "60x60"
37+
},
38+
{
39+
"idiom" : "iphone",
40+
"scale" : "3x",
41+
"size" : "60x60"
42+
},
43+
{
44+
"idiom" : "ipad",
45+
"scale" : "1x",
46+
"size" : "20x20"
47+
},
48+
{
49+
"idiom" : "ipad",
50+
"scale" : "2x",
51+
"size" : "20x20"
52+
},
53+
{
54+
"idiom" : "ipad",
55+
"scale" : "1x",
56+
"size" : "29x29"
57+
},
58+
{
59+
"idiom" : "ipad",
60+
"scale" : "2x",
61+
"size" : "29x29"
62+
},
63+
{
64+
"idiom" : "ipad",
65+
"scale" : "1x",
66+
"size" : "40x40"
67+
},
68+
{
69+
"idiom" : "ipad",
70+
"scale" : "2x",
71+
"size" : "40x40"
72+
},
73+
{
74+
"idiom" : "ipad",
75+
"scale" : "2x",
76+
"size" : "76x76"
77+
},
78+
{
79+
"idiom" : "ipad",
80+
"scale" : "2x",
81+
"size" : "83.5x83.5"
82+
},
83+
{
84+
"idiom" : "ios-marketing",
85+
"scale" : "1x",
86+
"size" : "1024x1024"
87+
}
88+
],
89+
"info" : {
90+
"author" : "xcode",
91+
"version" : 1
92+
}
93+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"author" : "xcode",
4+
"version" : 1
5+
}
6+
}

swiftui-test/Card.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
//
2+
// Card.swift
3+
// swiftui-test
4+
//
5+
// Created by emilien on 15/06/2022.
6+
//
7+
8+
import SwiftUI
9+
10+
struct Card: View {
11+
@EnvironmentObject var entry: Entry
12+
13+
var body: some View {
14+
VStack {
15+
Text("Two way binding example".uppercased())
16+
.bold()
17+
.padding()
18+
TextField("Try to type something here!", text: $entry.value)
19+
.font(.caption)
20+
.lineLimit(3)
21+
.multilineTextAlignment(.center)
22+
.padding()
23+
}
24+
.background(.black.opacity(0.05))
25+
.cornerRadius(20)
26+
.padding()
27+
}
28+
}
29+
30+
31+
struct Card_Previews: PreviewProvider {
32+
static var previews: some View {
33+
Card().environmentObject(Entry(text: ""))
34+
}
35+
}

swiftui-test/Content.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//
2+
// Content.swift
3+
// swiftui-test
4+
//
5+
// Created by emilien on 15/06/2022.
6+
//
7+
8+
import SwiftUI
9+
10+
struct Content: View {
11+
12+
var body: some View {
13+
VStack {
14+
Card()
15+
Mirror().frame(maxWidth: .infinity, maxHeight: .infinity)
16+
}
17+
}
18+
}
19+
20+
struct Content_Previews: PreviewProvider {
21+
static var previews: some View {
22+
Content().environmentObject(Entry(text: "This is an example"))
23+
}
24+
}

swiftui-test/Entry.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//
2+
// Entry.swift
3+
// swiftui-test
4+
//
5+
// Created by emilien on 15/06/2022.
6+
//
7+
8+
import Foundation
9+
10+
class Entry: ObservableObject {
11+
@Published var value: String
12+
13+
init(text: String) {
14+
value = text
15+
}
16+
}

swiftui-test/Mirror.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// Mirror.swift
3+
// swiftui-test
4+
//
5+
// Created by emilien on 15/06/2022.
6+
//
7+
8+
import SwiftUI
9+
10+
struct Mirror: View {
11+
@EnvironmentObject var entry: Entry
12+
13+
var body: some View {
14+
Text(entry.value)
15+
.frame(maxWidth: .infinity, maxHeight: .infinity)
16+
.font(.caption)
17+
.multilineTextAlignment(.center)
18+
.background(.black.opacity(0.05))
19+
.cornerRadius(20)
20+
.padding()
21+
}
22+
}
23+
24+
25+
struct Mirror_Previews: PreviewProvider {
26+
static var previews: some View {
27+
Mirror().environmentObject(Entry(text: "This is an example."))
28+
}
29+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"author" : "xcode",
4+
"version" : 1
5+
}
6+
}

swiftui-test/swiftui_testApp.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// swiftui_testApp.swift
3+
// swiftui-test
4+
//
5+
// Created by emilien on 15/06/2022.
6+
//
7+
8+
import SwiftUI
9+
10+
@main
11+
struct swiftui_testApp: App {
12+
@StateObject private var entry = Entry(text: "")
13+
14+
var body: some Scene {
15+
WindowGroup {
16+
Content().environmentObject(entry)
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)