iOS五种页面传值方式

方式一:属性传值

A页面的值跳转到B页面之后把值传给B页面,只需要在.h文件定义属性,A页面再跳转之前赋值给B页面的实例对象属性即可。

A页面(FirstViewController)部分代码:

在FirstViewController.m的button点击跳转方法中


B页面为TextFieldViewController,inputTextF就是B页面的属性。是不是很简单?这种传值方式一般用于正向传值给跳转界面。

方式二:代理传值

首先在跳转界面B.h文件定义代理协议方法:



在B.m中页面消失方法中实现委托:


在A.m中遵守协议,实现协议方法,即传递了B页面的背景色给A页面:


协议方法:

代理方法多用于反向传值,即跳转界面传值返回给上个界面。

方法三:通知传值

谁要监听值的变化,谁就注册通知。

A页面要监听B页面textfield的值的变化,那么他就在初始化方法里注册通知:


当B页面的textfield的值发生变化时A页面就会执行change方法:


在B页面消失方法中推送一个通知,相当于定义一个标识把值传给该标识通知的注册者:


通知传值是一对多的关系,一般用于跳转界面传值给上一界面。

方式四:单例传值

新建一个继承NSObject的类:


在.h文件里声明一个属性和一个类方法:


在.m文件实现类方法,初始化:


在B页面消失方法里:

在A页面即将出现方法里:


单例方法其实就是一个只会初始化一次,然后给他赋值共享的一个单例,该方法适合正向和反向传值,但是不要滥用。

方式五:block传值

B页面传值给上一页面A:

在B页面定义一个block:


定义声明一个方法(方便系统识别,提高开发效率):


B页面消失方法里:


在A页面跳转按钮方法里:


block其实是异步的高级传值方式,适用于传值给上一页面。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS中,可以通过WKWebView与JavaScript进行交互传值。以下是一些常见的方法: 1. 使用JavaScriptCore框架:在iOS 7及以上版本中,可以使用JavaScriptCore框架来实现WKWebView与JS的交互传值。具体实现步骤如下: (1)在iOS中创建一个JSContext实例,通过该实例可以操作JS环境。 (2)将JSContext实例设置到WKWebView的配置对象中。 (3)在JS中调用iOS方法时,可以通过window.webkit.messageHandlers对象进行调用,例如window.webkit.messageHandlers.methodName.postMessage(params)。 (4)在iOS中,可以通过WKScriptMessageHandler代理方法来接收JS传递的消息,并进行处理。 2. 使用WKScriptMessageHandler协议:在iOS 8及以上版本中,可以通过WKScriptMessageHandler协议来实现WKWebView与JS的交互传值。具体实现步骤如下: (1)在WKWebView的配置对象中设置WKUserContentController的代理对象,并添加需要监听的JS方法名。 (2)在JS中调用iOS方法时,可以通过window.webkit.messageHandlers对象进行调用,例如window.webkit.messageHandlers.methodName.postMessage(params)。 (3)在iOS中,可以通过WKScriptMessageHandler代理方法来接收JS传递的消息,并进行处理。 无论使用哪种方法,都需要注意JS和iOS之间传递的数据类型和格式。通常,JS传递的是字符串类型的数据,在iOS中需要进行解析和转换。同时,为了避免安全问题,需要对JS传递的数据进行校验和过滤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值