Swift3.0 block 传值

浅谈swift3 的block传值,有 a 界面跳到 b 界面,然后再从 b 界面返回 a 界面,同时 把 b 界面的数据用block传值传到 a 界面:
a界面跳到b 界面的代码

 func RightButtonClick()  {

        let TagVC = TagViewController()
        TagVC.hidesBottomBarWhenPushed = true
        TagVC.title = "标签"
        //block回传
        TagVC.switchoverCallblock = {
            (selectedArr,recommendArr,index) -> () in
           self.selectedArr = selectedArr
           self.recommendArr = recommendArr
           self.title = selectedArr[index]

        }

        self.navigationController?.pushViewController(TagVC, animated: true)

    }

b 界面回传a 界面 值:
定义block

class TagViewController: UIViewController,UICollectionViewDataSource,UICollectionViewDelegate{
    //定义block
    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传值

猜你喜欢

转载自blog.csdn.net/qq_30963589/article/details/69525563
今日推荐