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

卡住了!只能为presentviewcontroller传递数据,而不能传递pushviewcontroller的数据

卡住了!只能为presentViewController传递数据,而不能传递pushViewController的数据。

在iOS开发中,presentViewController和pushViewController都是用于视图控制器之间的切换和传递数据的方法。它们的区别在于,presentViewController是以模态的方式呈现视图控制器,而pushViewController是以导航栈的方式进行视图控制器的切换。

当我们使用presentViewController方法切换视图控制器时,可以通过设置视图控制器的属性或者使用代理模式来传递数据。具体的步骤如下:

  1. 创建一个新的视图控制器,并设置需要传递的数据属性。
  2. 在当前视图控制器中调用presentViewController方法,将新的视图控制器呈现出来。
  3. 在新的视图控制器中,通过属性或者代理模式获取传递的数据。

下面是一个示例代码:

代码语言:swift
复制
// 创建一个新的视图控制器
let destinationViewController = DestinationViewController()
destinationViewController.data = "需要传递的数据"

// 在当前视图控制器中呈现新的视图控制器
present(destinationViewController, animated: true, completion: nil)

在DestinationViewController中,可以通过访问data属性获取传递的数据。

对于推送视图控制器的情况,pushViewController方法只能用于导航控制器中,无法直接传递数据。但是可以通过其他方式来实现数据的传递,例如使用单例模式、通知中心、闭包等。具体的方法取决于你的具体需求和项目架构。

总结起来,无论是使用presentViewController还是pushViewController方法,都可以通过属性、代理模式、单例模式、通知中心、闭包等方式来传递数据。具体选择哪种方式取决于你的项目需求和设计架构。

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

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足不同规模业务的需求。产品介绍链接
  • 腾讯云云数据库MySQL版:提供高性能、可扩展的关系型数据库服务。产品介绍链接
  • 腾讯云人工智能平台(AI Lab):提供丰富的人工智能算法和模型,帮助开发者快速构建人工智能应用。产品介绍链接
  • 腾讯云物联网平台(IoT Hub):提供全面的物联网解决方案,帮助开发者连接和管理物联网设备。产品介绍链接
  • 腾讯云移动应用分析(MTA):提供全面的移动应用数据分析服务,帮助开发者了解用户行为和应用性能。产品介绍链接
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于各种数据存储需求。产品介绍链接
  • 腾讯云区块链服务(BCS):提供简单易用的区块链服务,帮助开发者构建和管理区块链网络。产品介绍链接
  • 腾讯云虚拟专用网络(VPC):提供安全可靠的云端网络隔离环境,保护用户数据和应用。产品介绍链接

请注意,以上链接仅为示例,具体的产品选择应根据实际需求进行评估和决策。

相关搜索:React多选不能传递选定的数据,而是传递所有数据将地图数据组合传递给我的组件卡消息传递的性能损失而不是共享数据处理针对JSON数据的PHP url的AJAX请求。我不能传递数据将数据从子选项卡传递到Ionic 2中的父选项卡如何将孙子数据传递到GrandParent组件中,而不将数据传递给Reactjs中的中间组件?将数据从选项卡栏视图传递到flutter中的屏幕在两个不同的选项卡之间传递数据[Chrome扩展]我想要将列表的名称打印或传递到text()字段,但不能(只打印名称而不是项目)如何在选项卡栏控制器中的不同选项卡之间传递数据如何从react中的db获取数据而不将其传递到状态?Reactjs另一个将数据从子组件传递到它的祖父组件,而不传递回调?在颤动中更新数据并将数据传递到导航轨道上的下一选项卡我可以将表单选择输入的值传递给验证器,但似乎就是不能将数据传递到数据库中将数据从控制器传递到视图(而不是显示它),然后在Codeigniter中将数据传递回不同的控制器仅发送文本而不是数字/图标,使用带有意图的传递数据为什么我的样式化组件数据不能传递到React的Button中?将数据从tableview传递到Swift选项卡栏中的视图控制器对于将数据传递到react导航的选项卡导航,目前的共识是什么?为什么不能通过将数据传递给某个函数来初始化全局范围的数据?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS面试题-UI篇

:设置目录,iCloud会备份设置信息 tmp:存放临时文件,不会被备份,而且这个文件下数据有可能随时被清除可能 pushViewControllerpresentViewController有什么区别...两者都是在多个试图控制器间跳转函数 presentViewController提供是一个模态视图控制器(modal) pushViewController提供一个栈控制器数组,push/pop 请简述...不好解决方案 * 使用下面的方式会强制Core Animation提前渲染屏幕离屏绘制, 离屏绘制就会给性能带来负面影响,会有现象出现 ``` self.view.layer.cornerRadius...-(void)viewDidLayoutSubviews; 触摸事件传递 触摸事件传递是从父控件传递到子控件 如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件 不能接受触摸事件四种情况...如果当前view是控制器view,那么就传递给控制器 如果控制器不存在,则将其传递给它父控件 在视图层次结构最顶层视图也不能处理接收到事件或消息,则将事件或消息传递给UIWindow对象进行处理

2K21
  • iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转

    [JSDVCRouter openURL: C info: {kJSDRouteSegue: @"Modal"}]; // 控制器之间跳转默认以 Push 实现, 当需要 Modal 时, 则传递一个参数...动态化及灵活性: 使用 Router 时可以配合后台响应传递响应 Key 来决定真正跳转页面, 不是硬编码方式来进行跳转; 6....Category 找到当前 visibleVC 来进行 Push 或 Modal, 我们也可以根据业务方传递过来参数来决定进行 Push 或 Modal 以及是否需要执行动画等等; 关于传参 : 传递过来参数是字典数据结构..., [backIndexString integerValue])]; nav.viewControllers = vcs; [nav pushViewController...:vc animated:YES]; } else { [nav pushViewController:vc animated:animated]

    1.5K20

    来了,iOSJSCore与H5交互

    native通过context进行发消息 1 native 主动发消息给WebView 上文我们拿到了js上下文,就可以直接调用jsfunction啦,例如我们传递网络中token [...self.ctx[@"getToken"] callWithArguments:@[[AppManager manager].token]]; 2 js主动发送数据给native 这个过程稍微复杂点...但是有一个点需要注意,我们暴露出共js调用至少需要一个形参,也就是说,不传递数据也要有一个参数 ② 传递给WebView引用实现协议与函数 这里我们看一个实现 -(void)popBack:(NSString...最后是一个兼容性彩蛋,也是最坑一点---alert UIAlert在iOS 9之后慢慢被禁用,到了iOS13之后这问题异常严重,然鹅直接js进行alert居然报错,好在是哟办法 这里附上几种带和不带输入和提示框...[alerVc addAction:cancelAction]; [self presentViewController

    1.2K30

    Flutter 混合开发框架模式探索

    由于 Google 官方提供 Flutter 混合式开发方案过于简单,仅支持打开一个 Flutter View 能力,不支持路由间传参、统一生命周期、路由栈管理等业务开发中必要能力,因此我们需要借助第三方混合开发框架...,其依附于 FlutterEngine,给 Flutter 传递 UIKit 输入事件,并展示被 FlutterEngine 渲染每一帧 Flutter views。...,监听到这个 openPage 之后会调用 Flutter Boost open 方法,它最后还是会走到 Native 业务侧传来路由管理类中实现 open 方法,也是就说从 Flutter...方法,实现就是业务侧路由管理类中open 方法,即最终仍然交由业务侧路由去实现。...虽然内存不占优,但主线程占用 30ms 相比 RN 与 Webview 动辄初始化 100~200 ms 是好了不少。

    2.3K10

    IOS入门之StoryBoard

    XIB 其实IB和xib是从iOS SDK初次面世开始就是捆绑在开发者工具套装内内容了,到了Xcode 4之后更被直接集成到了Xcode中成为了IDE一部分. xib设计一大目的其实是为了良好...使用 StoryBoard iOS 项目均以初始化 StoryBoard 文件作为整个程序初始化入口,UIViewController 类是由于被 StoryBoard 绑定初始化,从而启动app...并且可以通过 Segue 来进行 View 之间数据传递,统一规范 View 之间跳转代码,让逻辑更清晰。 所以我们在写布局时候尽量预览下实际效果。 ?...pushViewController(vc, animated: true) 第二界面 let vc = UIStoryboard(name: "Second", bundle: nil).instantiateViewControllerWithIdentifier...pushViewController(vc, animated: true) 当然,也可以用 self.presentViewController 调用他们。 ?

    1.8K70

    MySQL数据库基础练习3、订单管理系统

    也就是说,表中每一列都应该包含一个值,不能包含集合、数组或其他复合数据类型。 例如,如果有一个“地址”列,它包含了街道、城市、省份和国家等信息,那么这就违反了第一范式。...非主键列必须完全依赖于主键,不能依赖于主键一部分(针对复合主键而言)。 解释: 第二范式建立在第一范式基础上,主要关注于主键与非主键列之间依赖关系。...在第二范式中,一个表只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 如果表中某一列与复合主键一部分有关,那么它就不应该存在于这个表中,而应该被分离出去形成另外一张新表。...非主键列必须直接依赖于主键,不能存在传递依赖。即非主键列必须直接依赖于整个主键,不能依赖于主键一部分。 解释: 第三范式是在第二范式基础上进一步细化。...它主要关注于消除传递依赖,即非主键列不应该依赖于主键某一部分,而应该直接依赖于整个主键。 如果存在传递依赖,那么应该考虑将这个非主键列分离出去,形成新表,并通过主键或外键与原表进行关联。

    8510

    iOS页面间传递消息之Delegate

    在开发应用过程中,我们需要频繁地在界面之间传递消息,有时候是传递信息,有时候是传递一个信号即可。在iOS开发中,有多种传递信息方式。...这个信号可以包含一些信息,比如各种对象:字符串、图片、数据流等等,也可以不包含信息,仅仅是一个信号。这个例子中就仅仅是不包含信息信号,比如要显示方块信号和要隐藏方块信号。...另外要特别注意不能忘记是,在创建子界面的时候,要将子界面的属性——delegate对象,设为self: // 进入子界面 - (void)showSecondView { SecondViewController...因为任何界面都可以遵循使用这些协议方法,每个界面的需求是不一样,子界面负责喊话说我要调用这个方法了,具体方法干什么还是在主界面中实现,这里我们就是显示和隐藏方块: #pragma mark - SecondViewController...其实也很简单,我们协议不是规定了很多方法吗,在这些方法里加上参数就可以把数据对象当参数传递了~ ---- 查看示例工程:https://github.com/Cloudox/DelegateDemo

    72630

    【iOS 开发】Controller 之间使用代理传值

    Controller 传值 控制器之间经常需要互相传递值,第一个控制器(简称 MasterVC)在通过 NavigationController Push 第二个控制器(简称 DetailVC)时候,... DetailVC 在给 MasterVC 传递时候,比如设定 MasterVC Title,却不能用同样方式传值(试一下就知道了),而且因为我们要通过 NavigationController...返回原来界面不是 push 一个新界面,所以也不能通过 segue 传值,解决方法我尝试了两种: 使用 static var 使用代理传值 使用 static var class MasterVC...) 方法, MasterVC 只需要遵守一个相应传值协议,协议里面要求必须实现方法,就是 setControllerTitle(text:String) 这个方法...popViewControllerAnimated(true) } } 相比之前方法,我们获得额外好处是:假如我们传递不只是字符串,而是大量信息,比如十个不同类型值,使用代理传值依然只需要实现一个方法

    1.1K20

    Flutter路由跳转、动画和传参详解(最简单)

    路由 做Android/iOS原生开发时候,要打开一个新页面,你得知道你目标页面对象,然后初始化一个Intent或者ViewController,再通过startActivity或者pushViewController...来推出一个新页面,不能跟web一样,直接丢一个链接地址就跳转到新页面。...Flutter路由介绍 Flutter里面有路由支持所有的路由场景,push、pop页面,页面间参数传递等等。flutter里面的路由可以分成两种,一种是直接注册,不能传递参数。...: 命名路由简明并且系统,但是不能传参。...和跳转时方式一样,甚至更简单,只需要: Navigator.of(context).pop('这个是要返回给上一个页面的数据'); 收 但是,在接受返回时数据需要改造前面触发跳转时路由: //

    1.4K20

    iOS自定义视图之【大图浏览器】(应用场景:查看风险商户证明材料时图片支持滑动切换)

    article/details/115077471 主要功能:进入查看器之后,可左右滑动查看上/下张,并支持下滑视图退出查看器 在这里插入图片描述 I 、用法 1.1 处理查看大图事件 用法一:采用模型数据进行传递...:imageUrls originImageViews:imageView4smalls selectPage:m.selectPage]; [self presentViewController...self.imageUrls originImageViews:self.originImageViews selectPage:self.selectPage]; [self.controller presentViewController...:imageBrowserViewController animated:YES completion:nil]; } II、demo 2.1 数据模型 @interface KNImageBrowserModel...: NSObject /** 大图图片地址 */ @property(nonatomic,copy)NSString * urlStr; /** 小图原始imageView,用于加载大图时展位图片

    49810

    MySQL数据库基础练习系列2、图书借阅管理系统

    也就是说,表中每一列都应该包含一个值,不能包含集合、数组或其他复合数据类型。 例如,如果有一个“地址”列,它包含了街道、城市、省份和国家等信息,那么这就违反了第一范式。...非主键列必须完全依赖于主键,不能依赖于主键一部分(针对复合主键而言)。 解释: 第二范式建立在第一范式基础上,主要关注于主键与非主键列之间依赖关系。...在第二范式中,一个表只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 如果表中某一列与复合主键一部分有关,那么它就不应该存在于这个表中,而应该被分离出去形成另外一张新表。...非主键列必须直接依赖于主键,不能存在传递依赖。即非主键列必须直接依赖于整个主键,不能依赖于主键一部分。 解释: 第三范式是在第二范式基础上进一步细化。...它主要关注于消除传递依赖,即非主键列不应该依赖于主键某一部分,而应该直接依赖于整个主键。 如果存在传递依赖,那么应该考虑将这个非主键列分离出去,形成新表,并通过主键或外键与原表进行关联。

    18910
    领券