2011-09-14 4 views
1

J'essaie de créer une application avec différentes vues. Il y a deux vues avec un contrôleur de vue chacune. La première vue est chargée via le rootViewController dans la classe AppDelegate. Maintenant, je veux charger l'autre vue à la suite de cliquer sur un bouton.Basculer entre les vues dans iOS

J'ai essayé de créer une instance du deuxième contrôleur de vue dans mon premier contrôleur et d'utiliser la méthode pushViewController mais cela n'a pas fonctionné. Le projet a été construit mais rien ne s'est passé après avoir cliqué sur le bouton.

+0

Comment avez-vous instancié le second contrôleur de vue? pourriez-vous poster la pièce de code concernée? –

+0

@vincent que vous devez allouer et initWithNibName sur la classe de contrôleur de vue que vous voulez activer. Cette réponse a quelques bons points: http://stackoverflow.com/questions/1644293/how-to-push-viewcontroller-view-controller – nykash

+0

@nykash - merci mais je le sais déjà? –

Répondre

1

mis à jour ma réponse:

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
PasswordHandling *aPasswortHandler = [[PasswordHandling alloc] init]; 
self.passwordHandling = aPasswortHandler; [aPasswortHandler release]; 
UINavigationController *navigationController; 
if ([passwordHandling passwordInKeyChain] == TRUE) { 
    LogInView *logInView = [[[LogInView alloc] initWithNibName: @"Log In View" bundle: nil] autorelease]; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:logInView]; 
    //[navigationController pushViewController: logInView animated:NO]; 
} else { 
    CreateNewPasswordView *createNewPasswordView = [[CreateNewPasswordView alloc] initWithNibName:@"CreateNewPassword" bundle: nil]; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:createNewPasswordView]; 
    //[navigationController pushViewController: createNewPasswordView animated:NO]; 
} 

[self.window addSubview:navigationController.view]; 
[self.window makeKeyAndVisible]; return YES; 
+0

Ceci est mon code appDelegate. PasswortHandler est une classe communiquant avec l'application keychain '- (BOOL): application (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions { self.window = [[[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] limites]] autorelease]; PasswordHandling * aPasswortHandler = [[PasswordHandling alloc] init]; self.passwordHandling = aPasswortHandler; [libération de aPasswortHandler]; if ([passwordHandling passwordInKeyChain] == TRUE) { // Mot de passe dans le porte-clés' –

+0

'LogInView * logInView = [[[LogInView alloc] initWithNibName: @ Bundle" Vue de connexion ": nil] autorelease]; [navigationController pushViewController: logInView animé: NO]; } else { CreateNewPasswordView * createNewPasswordView = [[CreateNewPasswordView alloc] initWithNibName: @ "Kit CreateNewPassword": nil]; [navigationController pushViewController: createNewPasswordView animé: NO]; } [self.window setRootViewController: navigationController]; [self.window makeKeyAndVisible]; return YES; } 'après le démarrage de l'écran de l'iPhone reste blanc. Qu'est-ce qui ne va pas? –

+0

n'a pas pu voir tout le code. pouvez-vous mettre à jour votre question en ajoutant le code? - ignore ce commentaire, car je ne pouvais pas le supprimer. – Saran

0

Vous devez placer votre premier viewController dans un UINavigationController et définir ce contrôleur de navigation comme rootViewController. Ensuite, lorsque vous cliquez sur le bouton, appel (en supposant que vous êtes dans votre premier contrôleur):

[self.navigationController pushViewController:secondViewController animated:YES]; 
0

et Zoleas saran fois frappé les points critiques ... mais cela pourrait aider à voir quelques exemples différents. Voir ce pour une explication (je généralement utiliser l'approche # 2 pour mes applications)

How to push viewcontroller

0

Assurez-vous que le bouton de votre point de vue a sa configuration cible/action correctement en droit/contrôle-cliquant sur le bouton pour voir sa connexions popup.

Questions connexes