본문 바로가기
iOS/iOS

Delegate 사용

by 패쓰킴 2022. 3. 28.
728x90

다른 뷰컨트롤러에 있는 함수 또는 프로퍼티를 특정 시점에 호출해야 할 때 사용

 

프로토콜의 선언은

데이터를 전달하는 곳에서 선언하고

데이터를 받는 곳에서 채택한다.

 

// 데이터 전달.h
@protocol myDelegate <NSObject>
@optional
@property (nonatomic) NSString * count;
- (void)move;
@end
​
@interface 데이터전달 : UIViewController
@property (nonatomic) id<myDelegate>myDelegate;
@end
---------------------------------------------------------------  
// 데이터 전달.m
// move가 실행되어야 하는 시점에서
- (IBAction)cancle:(id)sender {
  // 딜리게이트 함수 move 실행
  [self.myDelegate move];
}

// count에 값을 넣어줄 시점에서
- (IBAction)save:(id)sender {
  // 딜리게이트 프로퍼티 count에 값 세팅
  [self.myDelegate setCount:99];
}
// 데이터 받을곳.m
#import "데이터전달.h"
​
@interface 데이터받을곳()<myDelegate>
@end
@implementations 데이터받을곳
@synthesize count;

- (void)딜리게이트 채택이 필요한 또는 가능한 시점의 함수 {
  데이터전달.myDelegate = self;
  
  // 이 함수 내에서 count가 필요하다면
  self.count = count;
}
​
- (void)move {
  필요한 코드 작성
}

 

참고:

https://stackoverflow.com/questions/11913578/define-property-in-protocol/11913680

728x90

'iOS > iOS' 카테고리의 다른 글

image scrolling(paging) & zoom  (0) 2022.04.04
Firebase DynamicLinks  (0) 2022.04.01
뷰 계층 관리  (0) 2022.03.25
UILable cornerRadius  (0) 2022.03.16
UIView 값이 틀릴 때  (0) 2022.03.14

댓글