UIView를 필요에 따라 생성하여 사용한다. 예를 들어 UIView 하위에 UIButton 을 추가하여 사용할 때 UIButton 의 이벤트를 상위 뷰인 UIViewController 에서 사용할 경우가 생긴다. 이경우 어떻게 해야 할까? 이때 사용하는 방법이 Protocol 이다. 일단 Custom UIView에 Protocl 을 추가한다. protocol ShiftViewDelegate { // 부모 뷰로 데이터 전달을 위한 델리게이트 메소드 func dayTouchEvent(touchButton: UIButton ) } 이제 UIView 클래스에 델리게이트 변수를 추가한다. class ShiftView: UIView { // 부모 뷰로 데이터 전달을 위한 델리게이트 var delegate: ShiftViewDelegate ? 버튼 이미지에 메소드에 델리게이트 추가한다 func ButtonTouch(button: UIButton ) { // 버튼 크기를 키움 button. transform = CGAffineTransformMakeScale ( 1.5 , 1.5 ) // 버튼 크기 원상복구 UIView . animateWithDuration ( 0.8 ) { button. transform = CGAffineTransformMakeScale ( 1.0 , 1.0 ) } // 부모 뷰로 데이터 전달 delegate ?. dayTouchEvent (button) } 이제 UIViewController 에 델리게이트를 추가한다. class ViewController: UIViewController , ShiftViewDel