본문 바로가기
카테고리 없음

Interface Builder - IBOutlet , IBAction

by 멍멍돌이야 2010. 10. 31.
반응형
내용출처: 시작하세요! 아이폰3 프로그래밍 책.


.nib = .xib
같다... nib가 원조다... ㅋㅋ

컨트롤러 클래스는 아웃렛 outlet이라 불리는 틀별한 인스턴스 변수를 사용하여 nib 파일 안의 객체를 참조할 수 있다.
아웃렛은 nib파일 내부의 객체를 가리키는 포인터라 생각하면 된다.

예를 들어 여러분이 인터페이스 빌드에서 텍스트 레이블 하나를 생성하였고 코드 내부에서 레이블의 텍스트를 변경하려 한다고 가정해보자. 아웃렛을 하나 선언하고 아웃렛이 레이블 객체를 가리키게 함으로써 코드상에서 아웃렛을 사용하여 레이블의 텍스트를 변경할 수 있다.

* IBOutlet 선언
.h
@property (nonatomic, retain) IBOutlet UIButton *myButton;
.m
@synthesize myButton;

* IBOutlet를 사용한 변수는 종료시 메모리 해제를 해야한다.
- (void)viewDidUnload {
    // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
    // For example: self.myOutlet = nil;
   self.myButton = nil;
}

- (void)dealloc {
    [myButton release];
    [super dealloc];
}


* IBAction
- (IBAction)doSomething:(id)sender;

IBAction은 void 리턴 타이을 선언한 것과 같다고 할수 있다, 바꾸어 말하면 액션 메서드는 변수 값을 리턴하지 않는다는 말이다.

액션 메서드를 호출하는 버튼 컨트롤은 sender인자를 통해 자기자신의 포인터를 넘겨준다.
예를 들어 버튼을 눌렀을 때 액션 메서드가 호출된다면 sender 인자는 방금 눌러진 버튼의 포인터 값을 가지고 있을것이다.
이벤트 변수? 인가보네...








728x90
반응형

댓글