2009-06-30 5 views
1

때때로 NavController에 ViewController를 밀어 넣을 때 View Controller의 viewDidLoad() 메서드가 호출되지 않습니다. 그리고 내 응용 프로그램이 충돌합니다. 나는 어떤 도움을 주셔서 감사합니다.탐색 컨트롤러를 탐색 컨트롤러에 밀어 넣기

네비게이션 컨트롤러에 밀어 넣기 전에 펜촉에서 뷰를로드한다는 것을 잊지 마십시오. 뷰가 먼저 펜촉 파일에서로드 될 때

덕분에, 사라

답변

6

viewDidLoad 메소드는 호출된다. 보기가 이미로드되어 있고보기를 다시 누르면 다시 시작되지 않습니다. 원하는 작업에 따라 viewWillAppear 또는 viewDidAppear을 대신 사용할 수 있습니다.

+0

ViewDidLoad는 ViewController가 init'ed 일 때도 호출되며, XIB가 전혀 포함되지 않은 경우에도 호출됩니다. – mmc

+0

viewDidLoad는 .view 속성에 처음 액세스 할 때 호출되는 loadView 바로 다음에 호출됩니다. loadView의 기본 구현은 nib 파일을로드하지만 (보기 컨트롤러를 삽입 할 때 nib 파일 이름을 제공 한 경우) loadView를 대체하여 코드에서보기를 작성할 수 있습니다. –

2

뷰가로드되어 컨트롤러 스택에 추가되면 다시 호출되는 것을 볼 수 없습니다. 스택에서 튕겨 나오기 위해 뷰를 필요로하고 그것을보기 위해 다시 밀어야한다. viewWillAppear은보기로 돌아갈 때마다 호출됩니다. 이렇게하면 순서대로 진행될 수있는 정리 작업을 수행 할 수 있습니다 (목표로 가정).

+0

잘못되었습니다. viewDidLoad는 한 번만 호출됩니다 (나중에 메모리를 확보하기 위해 뷰가 해제되지 않은 경우). Diedrik Hoogenboom이 맞습니다. –

+1

정확히 내가 쓴 것입니다. 일단 호출되면 뷰로 돌아갈 때 작업을 수행하기 위해 viewWillAppear을 구현해야한다고 말했습니다. 게시물을 읽어보십시오. – MystikSpiral

관련 문제