2014-10-16 2 views
1

다른 viewcontroller의 "컨테이너"이지만 직접 부모가 아닌 viewcontroller에서 메서드를 사용하고 싶습니다. 사용자 정의 xib 파일이 포함 된 popover를 표시합니다. 이를 위해 나는 세 viewcontrollers이 다음 팝 오버의 설정을 관리iOS - initWithViewController "parent"viewcontroller를 대상으로하는 방법

1) popoverVC을 (알파 값, 어떤 화살표, 크기 및 방법처럼 나는 "외부"dismisspopover)

2에서 사용할) customVC에 내 popover (일부 텍스트 및 일부 버튼)의 내용을 변경하는 xib 파일이 있습니다.

3) mainVC 여기서 popover가 시작되고 customVC의 버튼과 상호 작용할 때 어떤 동작이 발생합니다. mainVC는 customVC의 대리자입니다.

내 문제는 customVC의 동작에서 popoverVC의 dismisspopover 메서드를 호출 할 수 없다는 것입니다. 맨 처음에 나는 mainVC에서이 같은 내 customVC를 초기화 :

mainVC.m 내가 전화를 할 수 있도록 customVC 내 액션 메소드 내부 popoverVC의 새로운 인스턴스를 인스턴스화하려고

customVC *cvc = [[customVC alloc] init]; 
    [cvc setDelegate:self]; 

    PopoverController *popover = [[PopoverController alloc] initWithViewController:cvc]; 
    [popover presentPopoverFromView:textField]; 

메소드 [popoverdismiss]. 하지만 내가 시작한 인스턴스와 다른 인스턴스를 대상으로 할 것이므로이 작업을해서는 안됩니다 ... 그리고 [self.presentingVC]처럼 popoverVC를 대상으로 할 수는 있지만 initWithVC 메서드가 계층 구조를 설정하는지 잘 모르겠습니다. 이렇게.

누구나 아이디어가 있습니까? 나는 보통 기본 뷰 컨트롤러 계층을 우회하는 데 대해 이동

답변

0

방법이 당신의 아이 뷰 컨트롤러 내에서 속성을 만드는 것입니다 (나는 customVC 생각) parent 전화 또는 유형 mainVC의의 그 효과에 뭔가. 그런 다음 customVC에 대해 초기화 할 필드를 포함하는 customVC의 새 초기화 도구를 만들거나 customVC을 처음 초기화 한 후에 할당하십시오. 그런 다음 customVCmainVC에 기능 수행을 요청해야 할 때마다 parent에서 메소드 호출을 할 수 있습니다.

popoverVC 개체와 마찬가지로 쉽게 parent을 만들 수도 있습니다. 어떤 개체에 액세스해야하는지 완전히 모르겠지만 자신의 속성을 만드는 것만 큼 간단해야합니다.

+0

고맙습니다. 나는 왜 좋은 viewcontroller로 처음으로 인스턴스를 생성 할 때 속성을 생성하고 그것을 설정하는 대신 타겟 viewcontroller에서 새로운 객체를 인스턴스화했는지 모른다. – Trichophyton