时间:2021-05-20
简介
这里教大家如何弹出一个简单的模态视图。分别有两个页面,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中显示模态视图的实例代码,希望对大家有所帮助,也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了iOS实现相册多选图片上传的具体代码,供大家参考,具体内容如下原理:获取手机里的全部照片,显示在自定义的视图里?12345678910111
本文通过实例给大家详细讲解了IOS开发中ToolBar切换视图方法以及原理解释,希望我们的整理对你有用,一起学习下。iOS中几种典型的多视图程序:(1)TabB
下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。实例下面的实例演示了事件的用法:Bootstrap实例-模态框(Modal)插件事件模态框(Moda
"文档"工具栏"文档"工具栏中包含按钮,这些按钮使您可以在文档的不同视图间快速切换:"代码"视图、"设计"视图、同时显示"代码"和"设计"视图的拆分视图。工具栏
SwiftUI中的动画在写动画之前呢先简单回顾一下SwiftUI中动画的几个要点:动画是view发生变化时的渐变效果SwiftUI动画分为隐式动画(.anima