Pergunta

Tudo bem, então eu fiz uma popover da minha visão principal e de todas essas coisas boas. Mas quero que minha popover chame uma ação na minha visão principal quando um botão dentro do popover for pressionado.

MainView *mainView = [[MainView alloc] initWithNibName:@"MainView" bundle:nil]; [mainView doStuff];

A função "Dostuff" altera alguns elementos dentro da visualização. Por exemplo, a cor da barra de ferramentas deve ser alterada. Coloquei um comando de impressão e o comando de impressão é executado. Mas, por algum motivo, a barra de ferramentas não mudará de cor.

  • Eu importei o cabeçalho do MainView para o popover.
  • Eu fiz uma coisa @class para MainView em minha popover.
  • Dostuff é declarado no cabeçalho do MainView.
  • Os iboutlets também são declarados e conectados.

Alguma ideia?

Foi útil?

Solução

Bem, é decepcionante que não tenhamos um método direto que possa ser usado para verificar em qual visualização (controle do controlador) é mostrado. O que estou fazendo no aplicativo baseado em Tabbas é:

New_iPadAppDelegate *appDel = (New_iPadAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSArray *viewConts = [(UINavigationController *)[[appDel tabBarController] selectedViewController] viewControllers];
    MainViewController *viewController =  (MainViewController *)[viewConts lastObject];
    if([[viewController popoverController] isPopoverVisible]){
        [viewController doStuff];
    }

Espero que isto ajude,

Sei que essa não é a melhor maneira, esperando que a Apple pense sobre esse problema, ou se alguém criou um trabalho por aí.

Obrigado,

Madhup

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