IOS在SwiftUI中显示模态视图的实例代码

 更新时间:2020年02月19日 09:58:44   作者:GarveyCalvin  
这篇文章主要介绍了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 运行预览

总结

使用 SwiftUI 框架处理界面方便很多,不用太多的定义,我们只需要将界面进行描述出来就可以了。这个教程示例中使用到了 Button 和 Text 控件,也用到了@State, Binding, @Environment 技术点。教程很简单,放上来大家一起学习,教程里的代码已放在了GitHub上面,点击这里获取代码

以上所述是小编给大家介绍的IOS在SwiftUI中显示模态视图的实例代码,希望对大家有所帮助,也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS App中UIPickerView选择栏控件的使用实例解析

    iOS App中UIPickerView选择栏控件的使用实例解析

    这篇文章主要介绍了iOS App中的UIPickerView选择栏控件的使用,文中演示了两个超详细的例子,示例代码为Objective-C,需要的朋友可以参考下
    2016-04-04
  • iOS实现微信/QQ显示最近拍摄图片的功能实例代码

    iOS实现微信/QQ显示最近拍摄图片的功能实例代码

    如果你刚刚拍摄了图片,在使用微信/QQ发生消息时会显示“你可能要发送的图片”,这个功能非常人性化,怎么实现的呢?下面小编给大家分享iOS实现微信/QQ显示最近拍摄图片的功能实例代码,一起看看吧
    2017-03-03
  • iOS 11 safeArea详解及iphoneX 适配

    iOS 11 safeArea详解及iphoneX 适配

    本篇文章主要介绍了iOS 11 safeArea详解及iphoneX 适配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • iOS中对文本的字符限制示例详解

    iOS中对文本的字符限制示例详解

    这篇文章主要给大家介绍了关于iOS中对文本的字符限制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • IOS 打包静态库详细介绍

    IOS 打包静态库详细介绍

    这篇文章主要介绍了IOS 打包静态库详细介绍的相关资料,这里对打包静态库做了详细的说明,并进行了总结,需要的朋友可以参考下
    2016-11-11
  • iOS实现点击微信头像(放大、缩放、保存)效果

    iOS实现点击微信头像(放大、缩放、保存)效果

    最近公司产品需要实现点击个人主页头像可以放大头像、缩放头像、保存头像效果(和点击微信个人头像类似),故找个时间实现一下,记录下来,供自己查看也给有需要的大家做个参考。下面来一起看看吧。
    2017-03-03
  • iOS中使用对象的弱引用示例代码

    iOS中使用对象的弱引用示例代码

    这篇文章主要给大家介绍了关于iOS中使用对象的弱引用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • iOS中读写锁的简单实现方法实例

    iOS中读写锁的简单实现方法实例

    读写锁是计算机程序的并发控制的一种同步机制,也称“共享-互斥锁”、多读者-单写者锁,读操作可并发重入,写操作是互斥的,这篇文章主要给大家介绍了关于iOS中读写锁的简单实现方法,需要的朋友可以参考下
    2021-11-11
  • IOS视图控制器的生命周期实例详解

    IOS视图控制器的生命周期实例详解

    这篇文章主要介绍了IOS视图控制器的生命周期实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • iOS设置圆角的4种方法实例(附性能评测)

    iOS设置圆角的4种方法实例(附性能评测)

    这篇文章主要给大家介绍了关于iOS设置圆角的4种方法,并给大家附上了性能评测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01

最新评论