IOS在SwiftUI中顯示模態(tài)視圖的實(shí)例代碼
簡(jiǎn)介
這里教大家如何彈出一個(gè)簡(jiǎn)單的模態(tài)視圖。分別有兩個(gè)頁(yè)面,ContentView
和GCPresentedView
,以下對(duì)應(yīng)簡(jiǎn)稱為A和B。我們要做的是在A視圖中點(diǎn)擊按鈕跳轉(zhuǎn)到B視圖,然后再?gòu)腂視圖點(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)。教程很簡(jiǎn)單,放上來大家一起學(xué)習(xí),教程里的代碼已放在了GitHub上面,點(diǎn)擊這里獲取代碼 。
以上所述是小編給大家介紹的IOS在SwiftUI中顯示模態(tài)視圖的實(shí)例代碼,希望對(duì)大家有所幫助,也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS App中UIPickerView選擇欄控件的使用實(shí)例解析
這篇文章主要介紹了iOS App中的UIPickerView選擇欄控件的使用,文中演示了兩個(gè)超詳細(xì)的例子,示例代碼為Objective-C,需要的朋友可以參考下2016-04-04iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼
如果你剛剛拍攝了圖片,在使用微信/QQ發(fā)生消息時(shí)會(huì)顯示“你可能要發(fā)送的圖片”,這個(gè)功能非常人性化,怎么實(shí)現(xiàn)的呢?下面小編給大家分享iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼,一起看看吧2017-03-03iOS實(shí)現(xiàn)點(diǎn)擊微信頭像(放大、縮放、保存)效果
最近公司產(chǎn)品需要實(shí)現(xiàn)點(diǎn)擊個(gè)人主頁(yè)頭像可以放大頭像、縮放頭像、保存頭像效果(和點(diǎn)擊微信個(gè)人頭像類似),故找個(gè)時(shí)間實(shí)現(xiàn)一下,記錄下來,供自己查看也給有需要的大家做個(gè)參考。下面來一起看看吧。2017-03-03iOS中讀寫鎖的簡(jiǎn)單實(shí)現(xiàn)方法實(shí)例
讀寫鎖是計(jì)算機(jī)程序的并發(fā)控制的一種同步機(jī)制,也稱“共享-互斥鎖”、多讀者-單寫者鎖,讀操作可并發(fā)重入,寫操作是互斥的,這篇文章主要給大家介紹了關(guān)于iOS中讀寫鎖的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下2021-11-11iOS設(shè)置圓角的4種方法實(shí)例(附性能評(píng)測(cè))
這篇文章主要給大家介紹了關(guān)于iOS設(shè)置圓角的4種方法,并給大家附上了性能評(píng)測(cè),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01