Pergunta

Estou pesquisando há muito tempo, mas não consigo a solução. No iOS 5.1 Master View, desliza para a direita e desaparece ao deslizar para a esquerda.

Quero carregar a visualização mestre ao clicar no botão da visualização detalhada. Como isso é possível?

O código abaixo funciona para mim, a visualização mestre é ocultada, mas um tamanho de tela preta da visualização mestre permanece no lugar da visualização mestre.

- (void)hideMaster:(BOOL)hide {

  AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
 UISplitViewController* spv = appDelegate.splitViewController;
 spv.delegate=self;
 self.hiddenMaster= hide;
 [spv willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
 [spv.view setNeedsLayout];     
 }


- (BOOL)splitViewController:(UISplitViewController*)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation {

NSLog(@"Spv: I do %@show the master", (self.hiddenMaster?@"not ":@""));

return self.hiddenMaster;
}

desde já, obrigado

Foi útil?

Solução

A maneira padrão, pelo que entendi, de fazer isso é:

  1. No arquivo delegado do seu aplicativo, você precisa definir um dos seus controladores de visualização iniciais como UISplitViewControllerDelegate.Se você não fizer isso aqui, não receberá o primeiro botão se iniciar o aplicativo na orientação retrato.Por exemplo:

    UINavigationController *masterNavigationController = [self.splitViewController.viewControllers objectAtIndex:0];
    MyMasterVC *master = [self.masterNavigationController.viewControllers objectAtIndex:0];
    self.splitViewController.delegate = master;
    
  2. Em MyMasterVC.h declare-se como o <UISplitViewControllerDelegate> alterando a interface, como:

    @interface MyMasterVC : UIViewController <UISplitViewControllerDelegate>

  3. No MyMasterVC.m você precisa implementar os vários métodos do UISplitViewControllerDelegate que são descrito aqui na documentação da Apple

Os métodos para ocultar e mostrar o controlador de visualização fornecem um UIBarButtonItem que você deve adicionar ou retirar de seu controlador de visualização detalhada (em, por exemplo, um UIToolBar ou UINavigationBar).

Se você tiver problemas para lidar com isso, o assunto é muito bem abordado em uma das palestras no iTunesU do excelente Paul Hegarty da Universidade de Stanford (outono de 2010 ou 2011 - não me lembro).Você realmente deveria dar uma olhada.iOS5.1 mudou a forma como o MasterVC é apresentado da forma estrita de "popover" no curso, mas acho que os métodos descritos ainda funcionarão.É bem cedo no curso, talvez a aula 5, 6 ou 7 ou algo parecido.Acho que se chama Split Views, ou iPad Split Views ou similar.

EDITAR:É a aula 7 e se chama:"UIToolbar e aplicativos para iPad"

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