Question

Je cherche sur Google depuis longtemps, mais je n'obtiens pas la solution. Dans iOS 5.1, la vue principale s'affiche en glissant vers la droite et disparaît en glissant vers la gauche.

Je veux charger la vue principale en cliquant sur le bouton de la vue détaillée, comment est-ce possible ?

Le code ci-dessous fonctionne pour moi, la vue principale est masquée, mais une taille d'écran noir de la vue principale reste à la place de la vue principale.

- (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;
}

Merci d'avance

Était-ce utile?

La solution

La manière standard, si je comprends bien, de procéder est la suivante :

  1. Dans le fichier délégué de votre application, vous devez définir l'un de vos contrôleurs de vue initiaux comme UISplitViewControllerDelegate.Si vous ne le faites pas ici, vous n'obtiendrez pas le tout premier bouton si vous démarrez l'application en orientation portrait.Par exemple:

    UINavigationController *masterNavigationController = [self.splitViewController.viewControllers objectAtIndex:0];
    MyMasterVC *master = [self.masterNavigationController.viewControllers objectAtIndex:0];
    self.splitViewController.delegate = master;
    
  2. Dans MyMasterVC.h, déclarez-vous comme <UISplitViewControllerDelegate> en modifiant l'interface, comme par exemple :

    @interface MyMasterVC : UIViewController <UISplitViewControllerDelegate>

  3. Dans MyMasterVC.m, vous devez implémenter les différentes méthodes de UISplitViewControllerDelegate qui sont décrit ici dans la documentation d'Apple

Les méthodes pour masquer et afficher le contrôleur de vue vous donnent un UIBarButtonItem que vous devez ensuite ajouter ou supprimer de votre contrôleur de vue détaillée (dans, par exemple, un UIToolBar ou un UINavigationBar).

Si vous avez des problèmes avec cela, cela est assez bien couvert dans l'une des conférences sur iTunesU par l'excellent Paul Hegarty de l'Université de Stanford (automne 2010 ou 2011 - je ne m'en souviens plus).Tu devrais vraiment y jeter un oeil.iOS5.1 a changé la façon dont MasterVC est présenté de la manière stricte "popover" dans le cours, mais je pense que les méthodes décrites fonctionneront toujours.C'est assez tôt dans le cours, peut-être le cours 5, 6 ou 7 ou quelque chose comme ça.Je pense que cela s'appelle Split Views, ou iPad Split Views ou similaire.

MODIFIER:C'est la conférence 7, et elle s'intitule :"UIToolbar et applications iPad"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top