首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将值从collectionView传递到在"self“可用之前运行的新VC - Property初始化器(Swift 5)

在Swift 5中,可以通过以下步骤将值从一个collectionView传递到在"self"可用之前运行的新视图控制器的属性初始化器中:

  1. 首先,创建一个新的视图控制器(NewViewController),并在其属性中定义一个用于接收传递值的变量(例如,接收collectionView中选定项的值)。
代码语言:txt
复制
class NewViewController: UIViewController {
    var selectedValue: String?
    
    // 其他代码
}
  1. 在当前视图控制器(CurrentViewController)中,当用户选择collectionView中的某个项时,获取选定项的值,并将其传递给新视图控制器。
代码语言:txt
复制
class CurrentViewController: UIViewController, UICollectionViewDelegate {
    // 其他代码
    
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let selectedValue = collectionViewData[indexPath.row] // 获取选定项的值
        
        let newViewController = NewViewController()
        newViewController.selectedValue = selectedValue // 将值传递给新视图控制器的属性
        
        // 在此处进行新视图控制器的初始化和呈现
        // 例如,使用导航控制器进行推送
        navigationController?.pushViewController(newViewController, animated: true)
    }
    
    // 其他代码
}

在上述代码中,我们首先在NewViewController中定义了一个名为selectedValue的可选字符串类型的属性。然后,在CurrentViewController的collectionView(_:didSelectItemAt:)方法中,我们获取了collectionView中选定项的值,并将其赋值给newViewController的selectedValue属性。最后,我们可以使用适当的方式初始化和呈现newViewController。

这种方法可以用于将值从一个视图控制器传递到另一个视图控制器,并在新视图控制器的属性初始化器中使用这些值。这在需要在新视图控制器中使用来自先前视图控制器的数据时非常有用。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供可扩展的云服务器实例,满足不同规模和业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):提供高性能、可扩展的云数据库服务,支持MySQL数据库。详情请参考:https://cloud.tencent.com/product/cdb
  • 云原生容器服务(TKE):为容器化应用提供高可用、弹性伸缩的托管服务。详情请参考:https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):提供丰富的人工智能开发工具和服务,帮助开发者构建智能化应用。详情请参考:https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):为物联网设备提供连接、管理和应用开发的全套解决方案。详情请参考:https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):为移动应用提供消息推送服务,帮助开发者实现消息通知功能。详情请参考:https://cloud.tencent.com/product/tpns
  • 云存储(COS):提供安全、可靠、低成本的云端存储服务,适用于各种场景。详情请参考:https://cloud.tencent.com/product/cos
  • 区块链服务(Tencent Blockchain):提供一站式区块链解决方案,帮助企业快速搭建和管理区块链网络。详情请参考:https://cloud.tencent.com/product/tbc
  • 腾讯云元宇宙(Tencent Cloud Metaverse):提供虚拟现实(VR)和增强现实(AR)相关的云服务和解决方案。详情请参考:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Swift 项目 - Xib | StoryBoard 多人协作技巧

不同于国外,StoryBoard面世如今饱受国内开发者质疑,质疑理由很多,什么不利于多人协作啊,隐藏了UI细节啊,出问题不容易测试,降低执行效率啊等等。此文就是针对这些问题举例和剖析。...所有初始样式都是属性面板中设置,通过 func setValue(_ value: Any?...一个占位容器视图指向子控制Embed Segue 按住Control键连线想要包含子控制,占位视图实例==子控制view(子控制根视图) 选择Embed连线方式后,子控制 尺寸变化成跟占位视图一样尺寸...这样我们可以功能图标的CollectionView代码放到这第一个子控制上,CollectionViewDelegate、CollectionViewDataSource等代码也由子控制实现...如果需要在初始化时候拿到主ViewController实例,则应该在主ViewController``viewDidLoad方法中,调用ChildViewController特定方法,把 self

2.1K20
  • Swift纯代码走进UICollectionView

    2.jpg Swift对于一门iOS编程语言,他崛起是必然 我们这群老程序员们学习技能也是必然 不接受新技能将被这大群体无情淘汰 So 我欣然接受这门看似不成熟语言 下面我们说说...Swift中比较常见控件UICollectionView 首先我们设置一个全局UICollectionView和一个数据源 var colltionView : UICollectionView...,UICollectionViewDelegateFlowLayout 接下来我们要做是override func viewDidLoad()方法中初始化一些必要对象 override func...{ } 我们可以把要自定义UI 请求数据什么都放这方法里面 也就相当于我们VC里面的override func viewDidLoad()这个方法 教程结束 有任何问题可以留言,定期抽时间回复...更多经验请点击 原文:http://www.allluckly.cn/ 最终效果图如下 Swift_CollTionView.gif 推荐一款学习iOS开发app_____|___

    3.2K20

    新闻类App顶部菜单栏封装

    菜单栏使用UICollectionView,VC控制使用PageViewController。 这样做目的是为了完全复用,支持无限扩展。因为菜单栏是collectionView,所以不怕内存爆掉。...网上其他方案都是一次性把所有VC都实例化,然后使用CollectionView管理,这是不好,因为有些VC用户可能从来不浏览,没必要实例化。 接下来就详细介绍一下。...collectionView中,滑动cell时候其实只是offset变,cellframe其实是不变collectionView其实也是个ScrollView,cell是加在scrollView...解决方案是,cell坐标转化collectionView上,然后让下划线中心点和cellcollectionView上中心点保持一致 if let currentCell = collectionView.cellForItem...初始化方法修改后记得ScrollPageView中修改自定义VC初始化

    1K20

    iOS10 Swift3.0 XCode 8 总结

    1,iOS10 新增privacy settings iOS10添加了权限控制范围 如果你尝试访问这些隐私数据时得到如下错误: > This app has crashed because it...,想要达到之前效果需要在父级控件上调用layoutIfNeed 4, NSDate Swift3.0会将ocNSDate转为Data类型,有些操作NSDate第三方库会闪退 5, Notification...)' 6, Zip2Sequence(::) 被移除 Swift3.0 Zip2Sequence(_:_:)方法被替换为zip(_:_:) 7, Range.reversed 被移除 Swift3.0...UICollectionView 最大改变是增加了Pre-Fetching(预加载), 如果你翻看UICollectionView最新API你可以发现新增了如下属性: @property (nonatomic...=isPrefetchingEnabled) BOOL iOS10 Pre-Fetching 是默认开启,如果出于某些原因你不想开启Pre-Fetching,可以通过如下设置禁用: collectionView.isPrefetchingEnabled

    78510

    AsyncDisplayKit 2.0 教程:入门「译」

    免费App排行榜前100大多数都没有使用Swift(至少6个使用ASDK)。出于这些原因,本系列重点介绍 Objective-C。话虽这么说,我们已经包括了一个Swift版本实例项目。...注意:确保真机上运行本教程中代码,而不是模拟运行。 向上滑动你看到帧数丢失引起的卡顿。你不需要启动控制台,以便能发现这个应用程序需要在性能方面上一些优化。...然后返回一个 block,其返回必须为 ASCellNode。 没有必要担心Cell复用以及初始化一个Cell方法。您可能会注意您现在返回了CardNode,而不是CardCell。...这意味着,你必须通过某些手段做无缝处理,以便用户刷完当前数据列表时服务端加载数据。...完成后,用下载数据更新 tableView 最后,确保 -completeBatchFetching:返回是YES,即大功告成。完成操作之前,不会进行数据请求。

    2.2K20

    Objective-C MapKit使用-LBS简单租车主界面demo效果分析代码demo地址

    车辆类型选择view:选择车辆类型 交互分析 选择车辆类型,地图上出现不同大头针 车辆信息view可滑动,滑动完成后地图定位当前车辆大头针上 view搭建 车辆选择view:自定义slider...分段滑竿(上一篇文章提到过) 车辆信息View:使用uicollectionView流水布局,做出分页效果 mapView:自定义大头针,根据类型选择不同大头针图片 参数传递 模拟数据通过编写...1.plist完成 读取plist数据,通过选择车辆类型,筛选出来数据使用模型数组存放,通过set方法传递给mapView和车辆信息view,并刷新界面 选择车辆信息view 通过代理当前显示车辆信息页传递给...(nonatomic,assign)int scale; @end 初始化 //初始化 - (instancetype)initWithFrame:(CGRect)frame { self =...self.carPickView]; [self valuechange:self.carPickView]; } plist中加载数据 - (NSMutableArray<CarModel*

    1.9K40

    Swift 自定义布局实现 Cover Flow 效果

    x 坐标,然后遍历每一个 Cell 布局,找出它中心点 x 坐标,并计算这俩个 x 坐标的偏移,俩者距离越小,缩放比越小,反之则越大,我这边设定缩放比最大为 1,当俩者 x 坐标重合时,也就是没有偏移时候...返回一个偏移点 if targetPoint.x > 0 && targetPoint.x < collectionViewContentSize.width - collectionView...,那剩下就是视图控制中呈现了,这一步实现起来很简单,也不做赘述了,直接看源码: // // CoverFlowViewController.swift // SwiftScrollBanner...= false collectionView.dataSource = self collectionView.delegate = self //....purple : .red return cell } } 编译运行效果如图所示: 写在结尾 好了,本篇教程这里就结束了,这篇文章是 UICollectionView

    1.7K20

    iOS开发之UICollectionViewDataSourcePrefetching

    iOS10中,苹果为UICollectionViewCell引入了Pre-Fetching预加载机制用于提升它性能。...运行环境:Xcode 8.2.1 + iOS 10.2 核心步骤: 1、遵从 UICollectionViewDataSourcePrefetching 协议 2、实现 collectionView...:prefetchItemsAtIndexPaths 方法和collectionView:cancelPrefetchItemsAtIndexPaths 方法(可选) 3、第1步中遵从协议类设置为...UICollectionViewCell.png @property (weak, nonatomic) IBOutlet UIImageView *imgView; 三、控制 注释很详细 #import...效果演示.gif 写在后面的话 1、这个特性仍然需要探究 2、遇到一个坑:细心看的话可以发现我字典是懒加载,如果直接在viewDidLoad中初始化会在 weakSelf.imgs[currentURL

    2.1K60

    iOS开发之ReactiveCocoa下MVVM(干货分享)

    之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM架构设计与团队协作》,大体上讲就是使用Block回调方式实现MVVM。...,运行结果不难看出,通过Signal相应方法处理完后,处理结果会与返回信号量所绑定。...下方有VC层,VC层中有两个视图控制,一个是登录使用视图控制 (ViewContorller)另一个是登录成功后视图控制(LoginSuccessViewController)。...有图有真相,这儿如果还不理解我就没招了。 ? Public方法中- (id) buttonIsValid; 负责返回登录按钮是否可用信号量。...5.上面代码写完,我们就可以运行看一下运行效果了,下方是运行效果, ?

    5.9K30

    iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局

    ,这里我不错更多封装,添加一个属性,直接让外界item个数传递进来,我们把重心方法重写布局方法上: @interface MyLayout : UICollectionViewFlowLayout...布局类,因此,collectionView进行UI布局前,会通过这个类对象获取相关布局信息,FlowLayout类这些布局信息全部存放在了一个数组中,数组中是UICollectionViewLayoutAttributes...总之,FlowLayout类每个item位置等布局信息放在一个数组中,collectionView布局时,会调用FlowLayout类layoutAttributesForElementsInRect...因此,我们需要重写这个方法,返回我们自定义配置数组,另外,FlowLayout类进行布局之前,会调用prepareLayout方法,所以我们可以重写这个方法,在里面对我们自定义配置数据进行一些设置...int width=0;         if (colHight[0]<colHight[1]) {             //item高度加入一列             colHight

    3K20

    iOS开发之窥探UICollectionViewController(五) --一款炫酷图片浏览组件

    本篇博客应该算CollectionView高级应用了,iOS开发之窥探UICollectionViewController(一)今天(五),可谓是由浅入深窥探了一下UICollectionView...一.效果展示 废话少说,进入今天博客主题,下方就是今天博客中Demo运行效果。虽然运行效果做成gif丢帧了,看起来有些卡,不过跑起来还是比较流畅。...预加载布局方法, 该方法会在UICollectionView加载数据时执行一次,该方法中负责调用一些初始化函数。具体如下所示。...其中transform是根据CollectionView滚动偏移量来计算,所以滚动CollectionView时,Cell也会跟着旋转。...如果YES则在边界变化(一般是scroll其他地方)时,重新计算需要布局信息。

    1.5K80

    iOS开发之ReactiveCocoa下MVVM

    之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM架构设计与团队协作》,大体上讲就是使用Block回调方式实现MVVM。...,运行结果不难看出,通过Signal相应方法处理完后,处理结果会与返回信号所绑定。...下方有VC层,VC层中有两个视图控制,一个是登录使用视图控制(ViewContorller)另一个是登录成功后视图控制(LoginSuccessViewController)。...在用户下单之前先去判断用户是否实名认证以及绑定银行卡,如果用户已经实名和绑定银行卡就走正常支付流程(用户就是想去下单购买),VM就往VC发送successObject信号,当前VC就会根据信号指示跳转到下单支付页面...有图有真相,这儿如果还不理解我就没招了。 ? Public方法中- (id) buttonIsValid; 负责返回登录按钮是否可用信号。

    1.3K60

    Swift 5.1 中引入部分有用特性

    基本新功能,例如模块稳定性(使SDK供应商可以交付预编译Swift框架)所有SwiftUI以及其他功能新语法功能。...Message { var title: String var info: String let description: {title + ": " + info} } 2、具有默认成员初始化...() // 3.3 使用Self引用封闭类型 Self范围现已扩展还包括具体类型(例如枚举,结构体和类),使我们能够Self用作一种引用方法或属性封闭类型别名,如下所示: struct...6、协议抛出错误功能实现为非抛出 Swift中,可以使用非抛出函数满足抛出错误函数协议要求,这在某些情况下非常有用。...7、字符串插协议ExpressibleByStringInterpolation——使类型可以使用字符串插 为诸如字符串和整数之类原始创建包装类型,是使我们代码更具类型安全性和自记录性好方法

    1.4K20
    领券