2010-11-11 11 views
0

Je souhaite que mon application (au lancement) charge une vue que j'ai créée en haut de la vue d'origine, puis quand un bouton est cliqué, la vue de dessus disparaît et affiche la vue principale en dessous. Je sais que c'est terriblement simple, mais comment ferais-je cela? Peut-être pousser la vue dans viewDidLoad?Comment afficher une vue secondaire avant la vue principale?

Répondre

1

Cela peut être incroyablement simple. Lorsque l'utilisateur clique sur le bouton, il suffit de ce

secondViewController.view.hidden = YES; 

ajouter juste les deux points de vue dans votre délégué, et le faire dans votre délégué.

Si vous préférez, faites-le "dans" secondViewController! self.view.hidden = YES; Il semble que vous soyez en train de faire quelque chose de simple ... pas besoin de s'embêter avec un contrôleur de vue.

Vous demandez comment afficher la deuxième vue, comme ça ..

-(BOOL)application:(UIApplication *)applic`ation 
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
     { 
     [window addSubview:yourMainView.view]; 
     [window addSubview:theTemporaryView.view]; // it goes on top 

     [window makeKeyAndVisible]; 

     application.idleTimerDisabled = YES; 
     return YES; 
     } 
-(BOOL)eliminateTempView // example, when the user clicks on the button 
     { 
     theTemporaryView.view.hidden = YES; 
     [theTemporaryView release]; 
     } 

Hope it helps!

+0

Oui, c'est incroyablement simple. Juste comme un "Accepter les termes" genre de chose. Comment afficher la vue en utilisant cette méthode? –

+0

Oui, il semble que cela fonctionnerait parfaitement. Quand j'entre le code, cependant, il ne me donne aucun avertissement mais il ne montre pas la vue. Peut-être que je me trompe? Ce que j'ai fait est de créer un objet "firstLaunch" nommé "theLaunch". (firstLaunch est la vue que je veux sur la vue principale) Puis j'ai fait votre code en remplaçant "the TemporaryView" par "theLaunch". Il construit et s'exécute avec succès, mais la vue n'est pas affichée. Des idées? –

+0

Oops, ça ne fait rien. J'ai trouvé que si je fais '[firstLaunch * theLaunch = [[firstLaunch alloc] init];', alors utilisez que cela fonctionne très bien. Merci de votre aide! –

2

Utilisez un contrôleur de navigation

MyViewController *myView = [[MyViewController alloc] init]; 
UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController:myView]; 
My2ndView *secondView = .... 
[navControl pushViewController:secondView animated:NO]; 
[window addSubView:navControl.view] 
+0

note: vous pouvez masquer l'élément de barre de navigation supérieur afin qu'il soit transparent, juste pour gérer vos vues – Codezy

+0

Que serait 'fenêtre 'dans ce cas? Aussi, cela irait-il dans mon délégué, et si oui, pourquoi me donne-t-il une erreur en disant "UIWindow peut ne pas répondre à '-addSubView:'"? –

+0

Eh bien, on dirait que cette erreur est supprimée si je change "addSubView" en "addSubview". –

Questions connexes