생명주기 사이클은 크게 두 종류로 나눠지는데요
application 과 view 생명주기로 나눠 집니다.
1) 먼저 어플리케이션 생명주기 사이클은 이렇습니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
=> 어플리케이션이 처음 실행될 때. (처음 메모리상에 올라가게 될 때를 말함)
- (void)applicationDidBecomeActive:(UIApplication *)application
=> 어플리케이션이 활성화 될 때,
즉 didFinishLaunchingWithOption 호출 직후, 어플리케이션이 백그라운드로 돌아갔다가 다시 불러질 때 호출
- (void)applicationWillResignActive:(UIApplication *)application
=> 어플리케이션이 백그라운드로 들어가기 직전(홈버튼을 누른 직후)에 호출 됨
- (void)applicationDidEnterBackground:(UIApplication *)application
=> 어플리케이션이 백그라운드로 완전히 들어갔을 때 호출됨
- (void)applicationWillEnterForeground:(UIApplication *)application
=> 어플리케이션이 다시 활성되 되기 직전에 호출됨
(백그라운드 상에서 다시 어플리케이션이 활성되 되면 willEnterForeground 호출 후 applicationDidBecomeActive 호출)
- (void)applicationWillTerminate:(UIApplication *)application
=> 어플리케이션이 완전히 종료되기 직전에 호출 됨
2) 두번째로 뷰 생명주기 사이클입니다.
뷰 노출과 관련해 시점의 차이를 이해하는 것은 중요한 것 같다.
viewDidLoad : view가 load 되었을 때 호출되는 메소드
viewWillAppear : view 노출 준비가 끝났을 때 호출되는 메소드
viewDidAppear : view 노출이 완료되었을 때 호출되는 메소드
- (void)loadView
뷰 컨트롤러에 보여지는 컨트롤러들을 생성하거나 추가할 때 적당한 부분
- (void)viewWillAppear:(BOOL)animated
뷰 컨트롤러가 사용자에게 보여지기 직전에 호출(복수 호출 가능)
loadView 다음에 호출 됨
- (void)viewDidLoad
viewWillAppear 다음에 호출 됨 (단 한번만 호출됨)
- (void)viewDidAppear:(BOOL)animated
viewDidLoad 다음에 호출 됨(복수 호출 가능)
- (void)viewWillDisappear:(BOOL)animated
해당 뷰컨트롤러가 사라지기 직전에 호출됨
- (void)viewDidUnload
viewWillDisappear 이후에 호출됨
- (void)viewDidDisappear:(BOOL)animated
viewDidUnload 이후에 호출됨
3)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
=> 어플리케이션이 처음 실행될 때. (처음 메모리상에 올라가게 될 때를 말함)
- (void)applicationDidBecomeActive:(UIApplication *)application
=> 어플리케이션이 활성화 될 때,
즉 didFinishLaunchingWithOption 호출 직후, 어플리케이션이 백그라운드로 돌아갔다가 다시 불러질 때 호출
- (void)applicationWillResignActive:(UIApplication *)application
=> 어플리케이션이 백그라운드로 들어가기 직전(홈버튼을 누른 직후)에 호출 됨
- (void)applicationDidEnterBackground:(UIApplication *)application
=> 어플리케이션이 백그라운드로 완전히 들어갔을 때 호출됨
- (void)applicationWillEnterForeground:(UIApplication *)application
=> 어플리케이션이 다시 활성되 되기 직전에 호출됨
(백그라운드 상에서 다시 어플리케이션이 활성되 되면 willEnterForeground 호출 후 applicationDidBecomeActive 호출)
- (void)applicationWillTerminate:(UIApplication *)application
=> 어플리케이션이 완전히 종료되기 직전에 호출 됨
참고사이트입니다)
http://yooninsung.blog.me/30086543126
http://j2enty.tistory.com/76
http://theeye.pe.kr/entry/how-to-access-delegate-from-UIApplication
'개발도구 > iOS - 아이폰 개발' 카테고리의 다른 글
[ios] 현재 시간 정보 (0) | 2012.09.28 |
---|---|
[ios] 저장 관련 NSNotificationCenter (0) | 2012.09.28 |
[아이폰] NSUserDefault -> NSMutableArry (0) | 2012.09.24 |
[iphone] UIActivityIndicatorView spinner for long running operations (0) | 2012.09.24 |
[MAC 맥] 동영상 인코딩, 동영상 인코더 (0) | 2012.09.23 |