Função de chamada de Popover
-
20-09-2019 - |
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?
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