2012-08-28 2 views
2

Vous avez un problème avec cet article.Désactivation du contrôleur MWPhotoBrowser View Modalement en vue partagée

Vue d'ensemble: Application universelle. La partie iPhone fonctionne très bien. La partie iPad a un contrôleur de vue partagée. Le maître est une vue de table (côté gauche) où l'utilisateur sélectionne une ligne et affiche son détail (côté droit). Trucs assez standard. J'utilise la version 4.4.1 de Xcode et mon projet utilise Core Data, Storyboards et ARC.

DetailViewController: Sur le détail est un bouton qui ouvre une autre vue de la table (dans le détail) des notes de l'utilisateur par date avec une vue personnalisée. Chaque note peut avoir une image associée. Si une note contient une image, un bouton avec son icône de photo s'affiche.

exemple capture d'écran jusqu'à ce point:

Example screenshot 1

MWPhotoBrowser: Lorsque le bouton de l'icône photo I est pressé appelle MWPhotoBrowser (une merveilleuse bibliothèque pour afficher des images d'une manière standard) pour afficher l'image ou les images. Une seule pression montre l'image sélectionnée, une double pression montre toutes les images de la table en cours avec celle qui a été vue en premier. L'image est affichée en plein écran.

Pour afficher le navigateur photo J'utilise ce code:

// Create the browser view. 
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; 

// Set browser options. 
browser.wantsFullScreenLayout = YES; 
browser.displayActionButton = YES; 
[browser setInitialPageIndex:self.buttonRow]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser]; 

[self presentModalViewController:navController animated:YES]; 

Le NavController me permet d'inclure un contrôleur de navigation avec un bouton « Terminé » qui appelle doneButtonPressed.

Problème: Tout ce qui précède fonctionne bien jusqu'à ce que j'appuie sur le bouton «Terminé». Le navigateur de photos en plein écran se ferme correctement. Malheureusement, la vue de la table sur le côté droit à partir de l'endroit où l'utilisateur a appuyé sur le bouton de l'icône photo est maintenant disparu (noir). Je pensais que le NotesViewController (côté droit) resterait là après le navigateur photo a été rejeté de façon modale. L'appel d'un contrôleur de vue de modèle dans une vue partagée entraîne-t-il la suppression des autres contrôleurs de vue?

problème montrant capture d'écran Exemple:

enter image description here

Les piles du contrôleur de vue détaillée (côté droit) devrait être DetailViewController> NotesViewController> puis appelez MWPhotoBrowser modalement. Après le navigateur photo est rejetée mon self.navigationController.viewControllers.count est égal à 1 et je m'y attendais pas à être 2.

Voici le code qui rejette la MWPhotoBrowser:

- (void)doneButtonPressed:(id)sender { 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
. 
. 
. 

quelqu'un l'espoir peut me aider envelopper ma tête autour de ça.

Comme toujours, toute aide est grandement appréciée. Merci!

Répondre

0

J'ai résolu mon problème dans le NoteViewController (la zone devenant noire après le rejet de MWPhotoBrowser).

Dans viewWillAppear, je définissais ma tableview à zéro (pour éviter le surenveloppement des cellules) et recharger mes données de table.

self.tableView = nil; 

[self.tableView reloadData]; 

Cela fonctionne bien pour l'iPhone et quand ne reviennent pas de plein écran du MWPhotoBrowser sur l'iPad. Pour une raison que je ne comprends pas, le code ci-dessus provoque le problème. J'ai ajouté une logique supplémentaire pour vérifier si je reviens de l'affichage en plein écran et maintenant tout va bien. Je regarderai plus quand le temps le permettra.

Questions connexes