Pregunta

Muy bien, así que hizo un popover desde mi punto de vista principal y todas esas cosas buenas. Pero yo quiero tener mi popover llame a una acción en mi vista principal cuando se pulsa un botón en el popover.

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

La función "doStuff" cambia algunos elementos dentro de la vista. Por ejemplo, se supone que el color de la barra de herramientas para ser cambiado. He puesto una orden de impresión y se ejecuta el comando de impresión. Pero por alguna razón, la barra de herramientas no va a cambiar de color.

  • He importado la cabecera de MainView en el popover.
  • Hice una cosita @class para MainView en mi popover.
  • hacerTarea se declara en la cabecera de MainView.
  • Los IBOutlets se declaró también, y conectado.

¿Alguna idea?

¿Fue útil?

Solución

Bien es decepcionante que no tenemos método directo que puede ser utilizado para comprobar en qué punto de vista (controlador de vista) se muestra la popover. Lo que estoy haciendo en la aplicación tabbased es:

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 esta ayuda,

Sé que esto no es la mejor manera, con la esperanza de manzana piensa sobre este tema, o si alguien ha ideado una solución alternativa.

Gracias,

Madhup

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top