IOS在SwiftUI中顯示模態(tài)視圖的實(shí)例代碼
簡介
這里教大家如何彈出一個(gè)簡單的模態(tài)視圖。分別有兩個(gè)頁面,ContentView和GCPresentedView,以下對(duì)應(yīng)簡稱為A和B。我們要做的是在A視圖中點(diǎn)擊按鈕跳轉(zhuǎn)到B視圖,然后再從B視圖點(diǎn)擊按鈕返回到A視圖。
步驟
在A視圖中創(chuàng)建按鈕和模態(tài)視圖代碼
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 對(duì)屬性進(jìn)行修飾,在 SwiftUI 內(nèi)部會(huì)自動(dòng)轉(zhuǎn)換為一對(duì)getter,setter,對(duì)這個(gè)屬性進(jìn)行賦值時(shí)會(huì)觸發(fā)視圖更新。
$isPresented 能夠?qū)⒅狄茫ㄒ梅椒ㄊ窃谥登胺郊右粋€(gè)$符號(hào)),當(dāng)引用的值發(fā)生改變時(shí),這個(gè)改變會(huì)向外傳遞。
.sheet方法用于彈出一個(gè)模態(tài)視圖,在SwiftUI中的定義為。
public func sheet<Content>(isPresented: Binding<Bool>, onDismiss: (() -> Void)? = nil, @ViewBuilder content: @escaping () -> Content) -> some View where Content : View
在B視圖中創(chuàng)建按鈕和關(guān)閉模態(tài)視圖代碼
struct GCPresentedView: View {
@Environment(\.presentationMode) var mode
var body: some View {
Button(action: {
self.mode.wrappedValue.dismiss()
}, label: {
Text("Dismiss")
})
}
}
@Environment 獲取環(huán)境變量 presentationMode ,我們可以通過這個(gè)變量調(diào)用 wrappedValue.dismiss() 可以關(guān)閉模態(tài)視圖。
直接在 Xcode 運(yùn)行預(yù)覽

總結(jié)
使用 SwiftUI 框架處理界面方便很多,不用太多的定義,我們只需要將界面進(jìn)行描述出來就可以了。這個(gè)教程示例中使用到了 Button 和 Text 控件,也用到了@State, Binding, @Environment 技術(shù)點(diǎn)。教程很簡單,放上來大家一起學(xué)習(xí),教程里的代碼已放在了GitHub上面,點(diǎn)擊這里獲取代碼 。
以上所述是小編給大家介紹的IOS在SwiftUI中顯示模態(tài)視圖的實(shí)例代碼,希望對(duì)大家有所幫助,也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
ios12中遇到的帶input彈窗的錯(cuò)位問題的解決方法
這篇文章主要介紹了ios12中遇到的帶input彈窗的錯(cuò)位問題的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
iOS左右滑動(dòng)標(biāo)簽頁導(dǎo)航的設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了iOS左右滑動(dòng)標(biāo)簽頁導(dǎo)航的設(shè)計(jì)思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
iOS從App跳轉(zhuǎn)至系統(tǒng)設(shè)置菜單各功能項(xiàng)的編寫方法講解
這篇文章主要介紹了iOS從App跳轉(zhuǎn)至系統(tǒng)設(shè)置菜單各功能項(xiàng)的編寫方法講解,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-04-04
iOS 統(tǒng)計(jì)Xcode項(xiàng)目代碼行數(shù)的實(shí)例
下面小編就為大家分享一篇iOS 統(tǒng)計(jì)Xcode項(xiàng)目代碼行數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01

