Blocks in SWIFT 3 and SWIFT 2

SWIFT 3

//Custom view/cell say LocationPickerView (: UIView)

typealias blockDefination_DepatureCityAction = (_ button : UIButton) -> Void

var handler_DepatureCityAction:blockDefination_DepatureCityAction?


@IBAction func btnDepatureCityAction(_ sender: UIButton) {
        if(self.responds(to: #selector(getter: LocationPickerView.handler_DepatureCityAction))){
            self.handler_DepatureCityAction?(sender)
        }

    }

//View controller where you want callback

let locationPickerObject = LocationPickerView(frame: viewLocation.bounds)
locationPickerObject.handler_DepatureCityAction = { button in
            print("DepatureCityAction in view controller")
            print(button)
        }

SWIFT 2

//**************** BLOCK WITHOUT PARAMETER

//DECLARE as property
  • typealias completionBlockSeeMore = () -> Void
  • var cMoreButtonCallBack:completionBlockSeeMore?
  • if(self.respondsToSelector("cMoreButtonCallBack")){             self.cMoreButtonCallBack!() }


//USAGE
  • cell.cMoreButtonCallBack = { () -> Void in
                    printf("Callback in block")
                }


///*** ******BLOCK WITH PARAMETER

  • typealias completionBlockSeeMore = (sender: UIButton) -> Void
  • var cMoreButtonCallBack:completionBlockSeeMore?
  • if(self.respondsToSelector("cMoreButtonCallBack")){ self.cMoreButtonCallBack!(sender: sender) }

//USAGE
  •   cell.cMoreButtonCallBack = { (sender: UIButton) -> Void in
                    print("callback in block \(sender)")
                }

Comments

Popular posts from this blog

How to show activity indicator in watch kit

Vector graphics in iOS

Exception Handling - Objective C