所以我剛剛得到了帶有 TextField 的簡單代碼,并在同一個視圖中列印了文本欄位。我想將輸入的文本傳遞給另一個視圖——它目前不作業,我不知道為什么。
這是我的第一個視圖代碼:
import SwiftUI
import UIKit
struct Test: View {
@State private var username: String = ""
var body: some View {
TextField(
"Your name",
text: $username
)
Text("hello, \(username)")
.foregroundColor(.black)
NavigationLink(destination: OtherView()){
Text("GO TO OTHER VIEW")
.frame(width: 280, height: 70)
}
}
}
這是我的另一種觀點。
struct OtherView : View {
@State private var username: String = ""
var body: some View {
VStack {
Text("hello, \(username)!")
.foregroundColor(.white)
.font(.headline)
.padding(30)
}
}
}
我不知道如何才能在其他視圖中列印鍵入的文本。
uj5u.com熱心網友回復:
現在,您有兩個完全獨立的username變數。一個歸Test他人所有,另一個歸他人所有OtherView——它們彼此之間沒有任何聯系(給它們取相同的名稱并不會使它們相同)。
如果要將值從第一個View傳遞到第二個,可以將其作為傳遞給第二個的引數View。
該引數不需要@State在 second 上View,因為它根本沒有發生突變。
struct Test: View {
@State private var username: String = ""
var body: some View {
NavigationView {
VStack {
TextField("Your name", text: $username)
Text("hello, \(username)")
.foregroundColor(.black)
NavigationLink(destination: OtherView(username: username)){
Text("GO TO OTHER VIEW")
}
}
}
}
}
struct OtherView : View {
var username: String
var body: some View {
VStack {
Text("hello, \(username)!")
}
}
}
請注意,我已經包含了創建最小可重現示例所必需的內容,例如,NavigationView如果問題中未包含其他背景關系,則在原始專案中可能不需要的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/532664.html
標籤:IOS迅速代码迅捷文本域
下一篇:使用Firebase和MLKit/translate時找不到“<GoogleUtilities/GULLoggerLevel.h>”檔案
