2010-09-28 7 views
0

mon projet a d'abord utilisé le travail cadre Three20 pour la gestion de la navigation.Mais en raison de certains problèmes, je dois supprimer la partie three20.So im remodeler mon application. ce que j'essaie de faire est d'afficher une vue détaillée lorsque l'utilisateur touche un bouton.J'ai créé une nouvelle fenêtre principale comme il n'y en avait pas auparavant.Il ne dispose pas d'un contrôleur de navigation. j'ai utiliséHoew pour mettre en œuvre la navigation sur le bouton cliquez sur


DetailViewController * detailViewController = [[DetailViewController alloc] init]; [self.navigationController pushviewController: detailviewController animé: OUI]

dans l'événement de retouche de buttos. mais quand je cours les apphings de l'application hapens sur le bouton touch.No les avertissements ou les erreurs sont montrés. J'ai fait cela dans d'autres applications mais ça ne marche pas ici.

Répondre

1

Comme vous n'utilisez pas UINavigationController, la propriété navigationController de votre UIViewController restera nulle. "Compile-sage" il n'y a pas de problème, puisque la propriété existe, mais le compilateur ne sait pas que la propriété restera nulle, donc aucun avertissement/erreur n'est affiché.

L'envoi d'un message à un objet nul est autorisé dans Objective-C, donc le code ne plante pas et ne fait rien lors de son exécution.

Si vous voulez que votre code & s'exécute, vous devez placer le UIViewController racine dans un UINavigationController. Une fois que UIViewController est affiché dans un UINavigationController, la propriété sera automatiquement définie sur UINavigationController.

Éditer: Vous pouvez utiliser quelque chose comme ceci, au lieu de montrer someController, "l'encapsuler" dans un UINavigationController et montrer ce contrôleur.

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:someController]; 
+0

ok je l'obtiens.Juste a confondu comme compilateur showd aucun problème – humblePilgrim

Questions connexes