1

Démarrage d'un nouveau fil ... même question au sujet .. J'ai essayé tout ce que je reçois de différents postes et forums ... aucun des travaillant pour moi ..ModalViewController

Ce que je veux faire est ...

[self presentModalViewController:ViewControllerA animated:YES];//Working fine 
//Inside viewControllerA call viewControllerB 
[self presentModalViewController:ViewControllerB animated:YES];//Working fine 
//Dismiss both the Controllers. and present View 

C

J'ai essayé.

  1. avant de présenter viewControllerA rejetant ViewControllerB // qui va directement voir C
  2. dans viewControllerB viewControllerA rejetant // Aucun résultat. // DismissViewController doit rejeter tout pile .. mais ne fonctionne pas pour moi, donc j'ai essayé
  3. Rejetant à la fois viewContrller dans viewControllerB // encore montre viewContrllerA

... OMG il est source de confusion ..

Répondre

0

Voici ce que je l'ai fait .. pas une bonne solution, mais fonctionne pour l'instant .. :)

/// viewDidLoad [auto presentModalViewController: ViewControllerA d'animation: OUI]; // fonctionne bien

// à l'intérieur de ViewController A [self dismissModalViewControllerAnimated: NO];

// viewWillAppear [auto presentModalViewController: ViewControllerB d'animation: OUI]; // fonctionne bien

// intérieur ViewController B [auto dismissModalViewControllerAnimated: NO];

1

Votre code n'est pas clair (vous utilisez deux fois self quand ils se réfèrent probablement à des choses différentes). Je suppose que vous voulez faire est (effectivement) ceci:

[viewController presentModalViewController:viewControllerA animated:YES]; 
// time passes... 
[viewControllerA presentModalViewController:viewControllerB animated:YES]; 
// time passes 
... do something to dismiss both controllers ... 

Vous pourriez avoir la chance avec quelque chose comme ceci:

[viewControllerA dismissModalViewController:NO]; 
[viewController dismissModalViewController:NO]; 

Je ne sais pas ce que vous entendez par « dans » ou "à l'intérieur"; Peu importe la classe dans laquelle vous êtes. Mais généralement, un contrôleur de vue est responsable de ses enfants. En règle générale, le parent se définit comme le délégué de l'enfant. Quand l'enfant est "fini", il envoie un message au parent; le parent est responsable du renvoi de l'enfant. Les contrôleurs de vue pré-emballés d'UIKit (UIImagePickerController/MFMailComposeViewController/MFMessageComposeViewController) suivent tous ce modèle.

+0

si j'utilise viewController au lieu de self pour présenterModalViewController ... il ne présente pas de vue ... voici comment je crée viewControllerA ..... ViewControllerA * viewControllerA = [[[ViewControllerA alloc] init] autorelease]; – kthorat

+0

J'utilise viewController pour désigner n'importe quel contrôleur de vue "racine" que vous utilisez. "soi" n'a pas de sens par lui-même. Soupir. –

+0

Im encore tyring ... – kthorat

Questions connexes