swift中,A页面Push到B页面,B页面点击返回带参数到A页面执行进行赋值操作,用闭包怎么操作??
时间: 2024-02-09 15:13:24 浏览: 31
在Swift中,我们可以使用闭包来实现B页面带参数返回到A页面并执行赋值操作。具体的做法如下:
在B页面中定义一个带有参数的闭包,用于传递数据给A页面:
```swift
// 定义一个带有参数的闭包类型
typealias CallbackType = (String) -> Void
// 在B页面中定义一个变量,存储A页面传递过来的闭包
var callback: CallbackType?
// 在B页面的返回按钮点击事件中,调用闭包,传递参数
@IBAction func backButtonTapped(_ sender: UIButton) {
// 获取需要传递的数据
let data = "需要传递的数据"
// 调用闭包,将数据传递给A页面
callback?(data)
// 返回到A页面
navigationController?.popViewController(animated: true)
}
```
在A页面中,当跳转到B页面时,将带有参数的闭包传递给B页面:
```swift
// 在A页面中跳转到B页面
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "BViewController") as! BViewController
// 将闭包传递给B页面
vc.callback = { data in
// 在这里执行A页面需要的赋值操作
print(data)
}
navigationController?.pushViewController(vc, animated: true)
```
这样,在B页面点击返回按钮时,就会执行A页面传递过来的闭包,从而实现了在B页面带参数返回到A页面并执行赋值操作的需求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)