3

내 tabBarController 기반 앱에는 여러 개의 탭이 있습니다. 각 인스턴스에는 사용자 정의 viewController 클래스가 있으며 인스턴스가 초기화되는 유일한 차이점이 있습니다. 인터페이스 빌더가 다른 탭 사용자 정의 초기화 매개 변수를 전송하도록하는 방법이 있습니까?tabBar보기 IB의 컨트롤러 : 맞춤 초기화를 보내시겠습니까?

현재 viewWillAppear에서 초기화 작업을하고 있지만, 코드 대신 IB에서 수행하는 것이 합리적입니다.

제안 사항?

덕분에, 켈소

+0

다른 매개 변수를 보내려면 Tabbard가 필요합니까? 아니면 사용자 지정 초기화 메서드 만 필요합니까? – nduplessis

+0

코코아 터치, iphone-sdk 태그를 추가하는 것이 좋습니다. –

답변

3

인터페이스 빌더는 프로그램 실행시 아카이브되지 않은 객체의 아카이브를 만듭니다. IB에게 특정 방법을 호출하도록 말할 수는 없습니다. 당신이 viewWillAppear:가 호출되기 전에 초기화해야하는 경우

, 모든 개체가로드 된 모든 출구가 자신의 목표에 연결 한 후 호출 할 보장 awakeFromNib에서 수행 할 수 있습니다.

초기화를 더 일찍 수행하려면 initWithCoder:을 무시하여 수행 할 수 있습니다 (설명서는 NSCoding 프로토콜 참조). 어디서나 문서화되어 있는지는 모르겠지만 아카이브에서 디코딩 된 객체에 대해 초기화 된 지정입니다.

위의 모든 경우 매개 변수를받을 수 없지만 코드에서 전역 변수를 적절히 사용하여 필요한 모든 것을 액세스 할 수 있어야합니다. [[UIApplication sharedApplication] delegate]을 사용하여 응용 프로그램 대리인 개체에 액세스 할 수도 있습니다.

0

나는 당신의 펜촉이로드 될 때 방법이 IB 런타임에 의해 호출 무엇 변경할 수있는 방법이 있다고 생각하지 않습니다. 달성하려는 내용 (즉, viewDidAppear에서 설정하는 것이 왜 효과가 없는지)을 설명했다면 초기화를 처리하는 더 좋은 방법을 제안 할 수 있습니다.