2011-10-04 3 views
0

인터페이스 빌더에 TableViewController가 내장 된 ViewController가 있습니다 (다른 곳에서 TableViewController의 기능을 재사용 함). UIViewController의 NavigationController를 사용할 수 있도록 임베드 된 UIViewController에 다시 TabelViewController의 델리게이트를 설정해야합니다 (삽입 된 TableViewController의 행을 클릭하면 새 ViewController가 나타납니다 ...).awakeFromNib에서 위임 설정하기

이 모든 작업을 수행 할 수있는 대리인이 있습니다. 유일한 문제는 위임자를 설정할 위치입니다. 펜촉을 읽고 IBOutlets가 모두 설정되면 awakeFromNib이 호출된다는 것을 읽었습니다 (포함 된 TableViewController는 IBOutlet 임). 코드를 단계별로 실행하여 앱이 처음 시작될 때이 함수가 호출되는지 확인할 수 있습니다. 그러나 나중에 행을 클릭 할 때 대리자를 호출하면 대리자는 null입니다. 위임자를 viewDidLoad으로 설정하면 모든 것이 잘 작동합니다.

awakeFromNib가 작동하지 않는 이유는 무엇입니까? 어쨌든 viewDidLoad에서이 작업을 수행해야합니까?

감사합니다.

답변

0

당신은 당신의 awakeFromNib 메소드가 제대로 여기에 작동하지 않는 이유에 대한 자세한 내용을보실 수 있습니다 : Why won't my awakeFromNib fire?

의 viewDidLoad 방법은 다른 방법에 설정에서 UITableViewDelegate에게 실제 혜택을 설정하지위한 완벽한 장소입니다.