IOS在SwiftUI中显示模态视图的实例代码
简介
这里教大家如何弹出一个简单的模态视图。分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B。我们要做的是在A视图中点击按钮跳转到B视图,然后再从B视图点击按钮返回到A视图。
步骤
在A视图中创建按钮和模态视图代码
structContentView:View{ @StatevarisPresented=false varbody:someView{ Button(action:{ self.isPresented=true },label:{ Text("PresentModally") }) .sheet(isPresented:$isPresented){ GCPresentedView() } } }
使用@State对属性进行修饰,在SwiftUI内部会自动转换为一对getter,setter,对这个属性进行赋值时会触发视图更新。
$isPresented能够将值引用(引用方法是在值前方加一个$符号),当引用的值发生改变时,这个改变会向外传递。
.sheet方法用于弹出一个模态视图,在SwiftUI中的定义为。
publicfuncsheet
(isPresented:Binding ,onDismiss:(()->Void)?=nil,@ViewBuildercontent:@escaping()->Content)->someViewwhereContent:View
在B视图中创建按钮和关闭模态视图代码
structGCPresentedView:View{ @Environment(\.presentationMode)varmode varbody:someView{ Button(action:{ self.mode.wrappedValue.dismiss() },label:{ Text("Dismiss") }) } }
@Environment获取环境变量presentationMode,我们可以通过这个变量调用wrappedValue.dismiss()可以关闭模态视图。
直接在Xcode运行预览
总结
使用SwiftUI框架处理界面方便很多,不用太多的定义,我们只需要将界面进行描述出来就可以了。这个教程示例中使用到了Button和Text控件,也用到了@State,Binding,@Environment技术点。教程很简单,放上来大家一起学习,教程里的代码已放在了GitHub上面,点击这里获取代码。
以上所述是小编给大家介绍的IOS在SwiftUI中显示模态视图的实例代码,希望对大家有所帮助,也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。