1. 程式人生 > 程式設計 >IOS在SwiftUI中顯示模態檢視的例項程式碼

IOS在SwiftUI中顯示模態檢視的例項程式碼

簡介

這裡教大家如何彈出一個簡單的模態檢視。分別有兩個頁面,ContentViewGCPresentedView,以下對應簡稱為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 執行預覽

IOS在SwiftUI中顯示模態檢視的例項程式碼

總結

使用 SwiftUI 框架處理介面方便很多,不用太多的定義,我們只需要將介面進行描述出來就可以了。這個教程示例中使用到了 Button 和 Text 控制元件,也用到了@State,Binding,@Environment 技術點。教程很簡單,放上來大家一起學習,教程裡的程式碼已放在了GitHub上面,點選這裡獲取程式碼 。

以上所述是小編給大家介紹的IOS在SwiftUI中顯示模態檢視的例項程式碼,希望對大家有所幫助,也非常感謝大家對我們網站的支援!