[출처] iphone view 로드시 실행되는 메소드 순서 |작성자 디제이지유djziu
(http://blog.naver.com/soundeshop/70103009961)
-(void) awakeFromNib{}
XIB화일이 객체가 생성된후 바로 불리게 되는뷰. 만약 XIB로 뷰를 생성하지 않았으면 불리우지 않음
-(void)loadView{}
이 XIB로 view 를 생성하지 않고 view을 로드할때 사용된다
-(void)viewDidLoad{}
self.view 가 생성된 이후에 불리우게 되는뷰
만약 위와 같이 뷰를 불러오는 메소드를 3개 다 쓸 경우에 순서는 아래와 같이 불리우게 된다
-(void) awakeFromNib{} = -(void)loadView{} (awakeFromNib 과 loadView 같은 경우는 같이 쓸 일은 거의 없지만 거의 동시에 불리운다고 생각하면된다 그리고 그후에 -(void)viewDidLoad{} 가 불리운다
-(void)viewWillAppear:(BOOL)animated{}
viewWillAppear는 viewDidload가 불린 이후에 불리게 되는데
viewDidLoad같은 경우에는 메모리 warning이 발생하여 view 가 없어지지 않는한 viewDidLoad 다시 불리지 않지만
viewWillAppear 같은 경우에는 b라는 화면에 갔다가 다시 a라는 화면에 돌아오면 다시 이 메소드가 호출된다
-(void) viewDidAppear:(BOOL)animated{}
viewDidAppear같은 경우에는 viewWillAppear가 불리운 이후에 화면이 다 로딩 된 이후에 불리우게 된다
---------------------------------------------------
기화 코드를 넣을 수 있는 메소드에 대한 특징을 정리하면 다음과 같다.
* Init
- 일반적인 NSObject 의 초기화 코드이다.
* InitWithCoder
- 인터페이스 빌더 문서 안에 있는 객체들은 모두 InitWithCoder 로 초기화된다.
- 그렇기 때문에 InitWithFrame 등의 초기화 메소드는 호출되지 않는다.
* InitWithNibName
- 뷰 컨트롤러를 외부 NIB 파일에서 만드는 경우에 호출한다.
- 뷰 컨트롤러 자신을 제외한 XIB 파일에 포함된 모든 객체는 InitWithCoder 로 초기화된다.
* awakeFromNib
- 인터페이스 빌더에서 생성된 모든 객체는 초기화가 끝나면 awakeFromNib 메소드를 호출한다.
- 하지만 코드를 작성해서 직접 객체를 생성한 경우에는 당연히 이 메소드가 호출되지 않는다.
* viewDidLoad
- 뷰 컨트롤러의 뷰가 로그된 후에 호출된다.
- 탭 바에 포함된 뷰 컨트롤러라면 자신의 탭이 선택되어 화면에 뷰가 나타날 때가 되어서야 이 메소드가 호출된다.
[출처] iphone view 로드시 실행되는 메소드 순서 |작성자 디제이지유djziu
'iOS App Dev' 카테고리의 다른 글
Mobile Design Pattern Gallery (0) | 2011.12.04 |
---|---|
아이폰 개발 - Core Data에 사용되는 클래스들 (0) | 2011.12.03 |
WinClone으로 부트캠프 파티션 재설정하기 (0) | 2011.11.26 |
달력라이브러리 사용하기 (0) | 2011.11.22 |
맥 os의 간단한 역사 (0) | 2011.10.27 |