2010-09-07 7 views
5

Je présente un contrôleur de vue modale qui est un contrôleur de barre d'onglets avec un contrôleur de navigation à l'intérieur.Transition différente sur presentModalViewController: animé:

Le problème est que ma première vue a un arrière-plan noir et que la nouvelle vue doit avoir un fond blanc. Cela signifie que je dois avoir le contrôleur de vue modale avec un arrière-plan transparent (jusqu'à ce qu'il ait terminé l'animation "slide up" quand il montre le fond blanc) OU Je dois définir le fond du contrôleur de navigation comme étant blanc afin le rendre non transparent. Cela a pour résultat que j'ai une bande blanche SUPPLÉMENTAIRE au-dessus de la barre de navigation (où se trouve l'état du réseau/état de la batterie/barre de temps). Je ne peux pas m'en débarrasser. :(

Donc, si je pouvais retourner la vue, ou fade, ou faites-le glisser à droite ou à gauche ou quelque chose qui serait beaucoup mieux asthetically.

Est-il possible de le faire? ou devrai-je juste mettre « animée: » NO

Merci

Répondre

10

Je ne comprenais pas ce que votre situation avec les différentes couleurs de fond est de milieux Opaque sur votre point de vue, en particulier animant ceux, font le?. Maintenant, à propos des transitions, avant d'appeler presentModalViewController, insérez l'une des lignes suivantes:Tout ce qui précède va changer le style de transition (bien que le PartialCurl se traduise par un bit blanc de la dernière vue encore présente dans le coin supérieur; il semble être non documenté, bien qu'il soit utilisé par l'application Maps). Vous devrez peut-être jouer avec le modalTransitionStyle.

Glisser à partir de la gauche ou de la droite fait partie du contrôleur de navigation. Changer d'arrière-plan n'est probablement pas ce que vous voulez lorsque vous travaillez avec le contrôleur de navigation. .

En outre, cette bande supplémentaire au-dessus de la vue du modèle va apparaître, peu importe la façon dont vous la transition dans c'est ennuyeux, mais il peut être PROVIENNENT comme suit:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    navigationController.view.frame = CGRectMake(0, 0, 320, 460); //<--This line 
} 
+0

Fondamentalement, je ne voulais pas pour avoir un fond transparent - mais le fond blanc montre la bande blanche agaçante en haut. Ce dernier morceau de votre réponse est ce que je cherchais. Je vous remercie :) –

Questions connexes