IOS在SwiftUI中顯示模態檢視的例項程式碼
簡介
這裡教大家如何彈出一個簡單的模態檢視。分別有兩個頁面,ContentView
和GCPresentedView
,以下對應簡稱為A和B。我們要做的是在A檢視中點選按鈕跳轉到B檢視,然後再從B檢視點選按鈕返回到A檢視。
步驟
在A檢視中建立按鈕和模態檢視程式碼
struct ContentView: View { @State var isPresented = false var body: some View { Button(action: { self.isPresented = true },label: { Text("Present Modally") }) .sheet(isPresented: $isPresented) { GCPresentedView() } } }
使用 @State 對屬性進行修飾,在 SwiftUI 內部會自動轉換為一對getter,setter,對這個屬性進行賦值時會觸發檢視更新。
$isPresented 能夠將值引用(引用方法是在值前方加一個$符號),當引用的值發生改變時,這個改變會向外傳遞。
.sheet方法用於彈出一個模態檢視,在SwiftUI中的定義為。
public func sheet<Content>(isPresented: Binding<Bool>,onDismiss: (() -> Void)? = nil,@ViewBuilder content: @escaping () -> Content) -> some View where Content : View
在B檢視中建立按鈕和關閉模態檢視程式碼
struct GCPresentedView: View { @Environment(\.presentationMode) var mode var body: some View { Button(action: { self.mode.wrappedValue.dismiss() },label: { Text("Dismiss") }) } }
@Environment 獲取環境變數 presentationMode ,我們可以通過這個變數呼叫 wrappedValue.dismiss() 可以關閉模態檢視。
直接在 Xcode 執行預覽
總結
使用 SwiftUI 框架處理介面方便很多,不用太多的定義,我們只需要將介面進行描述出來就可以了。這個教程示例中使用到了 Button 和 Text 控制元件,也用到了@State,Binding,@Environment 技術點。教程很簡單,放上來大家一起學習,教程裡的程式碼已放在了GitHub上面,點選這裡獲取程式碼 。
以上所述是小編給大家介紹的IOS在SwiftUI中顯示模態檢視的例項程式碼,希望對大家有所幫助,也非常感謝大家對我們網站的支援!