2014-02-17 1 views
0

나는 4 개의 버튼 (HomePage)을 가진 viewController를 가지고 있고, 3 개의 viewController가있는 TabBarController를 가지고있다. TabBarController의 viewControllers 중 하나 tabBar 아이콘을 통해 "HomePage"로 돌아가는 방법으로 사용하고 싶습니다. 해당 viewController "HomeViewController"라는 만든 사용자 지정 클래스를 연결했습니다.사용자 지정 대리자 메서드가 호출되지 않는 이유는 무엇입니까?

enter image description here

HomeViewController .H 파일 아래 그림을 참조하십시오. 뷰는 대리자를 호출로드로 나는 방법 "returnToHomepage"

enter image description here

HomeViewController하는 .m은 즉시 파일과 프로토콜을 만들었습니다. enter image description here

내 HomepageViewController .H 파일에 파일이 프로토콜을 준수하는지 확인했습니다. enter image description here

HomepageViewController의하는 .m 파일 내가 자기 만 returnToHomePage 방법에 HomeViewController의 인스턴스를 설정하고 대리자를 인스턴스화가 결코 호출되지됩니다! 내가 무엇을 놓치고 있는지 잘 모르겠다 ... enter image description here

답변

1

위임자가 설정되기 전에 위임자 메소드를 호출하고 있다고 생각합니다.

당신이 컨트롤러에 ALLOC - 초기화를 호출 할 때, 그것은 초기화하고있는 viewDidLoad가 호출됩니다 ... 그리고 당신은 지금이

[self.delegate returnToHomepage]; 

이라고합니다 ... 대리자를 설정

homeVC.delegate = self; 
+0

viewDidLoad 메서드를 사용하고 있습니다. (그림 " – user3071579

+0

@ user3071579 당신 말이 맞습니다. 당혹 스럽습니다. 미안하지만 대답을 편집했습니다. – Merlevede

1

viewDidLoad에서 생성하는 HomeViewController는 실제로 화면 상에 표시되는 HomeViewController와 다릅니다. UITabBarController의 viewControllers 메서드를 사용하여이 메서드에 액세스하고이 메서드를 위임자로 설정해야합니다.

관련 문제