문제

문제가 있고이 문제를 설명하려고 노력할 것입니다.

  1. 나는 하나의 메인이 있습니다 UIViewController (전체 화면)
  2. 나는 두 번째로 하나가 있습니다 UIViewController (세트 바운드)
  3. 나는 내 2 차 견해를 추가했다 mainView 이것을 사용 :

    [mainController.view addSubview:secondaryController.view];   
    
  4. 세 번째 컨트롤러를 만들었습니다. modalController, 나는 다음과 같은 보조 컨트롤러에 추가했습니다.

    [secondaryController presentModalViewController:modalController animated:YES];
    
  5. 나는 내 내부의 일부 이벤트를 기반으로 미적분학을 만듭니다. modelController.

  6. 내 메시지를 보낼 수 있습니다 modalController 나에게 secondaryController 사용 :

    [[self parentViewController]  performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
    

    노트: "자기"는 modalController

  7. "myObject"를 내에게 전달해야합니다 mainController, 그러나 나는 내 것을 언급 할 수 없다 mainController ~로부터 secondaryController. 나는 이것을 시도했다 :

    [[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
    

    노트: "자기"는 secondaryController

    그러나 그것은 작동하지 않습니다. 나는 다음을 사용하여 MainController의 견해에 액세스 할 수 있습니다. self.view.superview

    노트: "자기"는 나의 것입니다 secondaryController

그러나 컨트롤러에는 없습니다.

도움이 되었습니까?

해결책

보조 컨트롤러에서 시도하십시오

id mainViewController = [self.view.superview nextResponder];

그리고 이것이 당신이 찾고있는 뷰 컨트롤러인지 확인하십시오.

애플의 문서 -[UIResponder nextResponder]:

UIView는 UIViewController 객체를 관리하는 (하나가있는 경우) 또는 수퍼 뷰 (그렇지 않은 경우)를 관리 하여이 메소드를 구현합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top