Pergunta

Eu tenho um problema e eu vou tentar explicar o problema:

  1. Eu tenho um UIViewController principal (tela inteira)
  2. Eu tenho um UIViewController secundário (SetBounds)
  3. Eu adicionei meu ponto de vista secundário à minha mainView usando este:

    [mainController.view addSubview:secondaryController.view];   
    
  4. Eu criei um terceiro controlador: modalController, eu adicionei-o ao meu controlador secundário como esta:

    [secondaryController presentModalViewController:modalController animated:YES];
    
  5. Eu faço o cálculo com base em alguns eventos dentro da minha modelController.

  6. Eu sou capaz de enviar mensagens do meu modalController ao meu secondaryController usando:

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

    NOTA: "auto" corresponde ao modalController

  7. Eu preciso passar "myObject" ao meu mainController, mas eu não posso fazer referência ao meu mainController do secondaryController. Eu tentei isso:

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

    NOTA: "auto" corresponde ao secondaryController

    mas não trabalho, eu tenho acesso a minha visão de MainController usando: self.view.superview

    NOTA: "eu" é o meu secondaryController

mas não ao seu controlador.

Foi útil?

Solução

Em seu controlador secundário, tente

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

e verificar se este for o controlador de vista que você está procurando.

documentação da Apple -[UIResponder nextResponder]:

UIView implementa este método, retornando o objeto UIViewController que administra-lo (se ele tiver um) ou seu superview (se isso não acontecer)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top