作者:mrkly_825 | 来源:互联网 | 2023-09-13 17:22
浅谈swift3 的block传值,有 a 界面跳到 b 界面,然后再从 b 界面返回 a 界面,同时 把 b 界面的数据用block传值传到 a 界面:
a界面跳到b 界面的代码
func RightButtonClick() {let TagVC = TagViewController()TagVC.hidesBottomBarWhenPushed = trueTagVC.title = "标签"//block回传TagVC.switchoverCallblock = {(selectedArr,recommendArr,index) -> () inself.selectedArr = selectedArrself.recommendArr = recommendArrself.title = selectedArr[index]}self.navigationController?.pushViewController(TagVC, animated: true)}
b 界面回传a 界面 值:
定义block
class TagViewController: UIViewController,UICollectionViewDataSource,UICollectionViewDelegate{var switchoverCallblock: ((_ selectedArr: [String], _ recommendArr: [String], _ index:Int) -> ())?var selectedArr = ["推荐","河北",""理财"]var recommendArr = ["有声","家居","育儿"]override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}
回调传值
if switchoverCallblock != nil {switchoverCallblock!(selectedArr,recommendArr,indexPath.item)_ = navigationController?.popViewController(animated: true)}
这就是简单的swift block传值