0

J'expérimente avec ViewControllers & NavigationControllers dans Interface Builder essayant d'avoir une meilleure compréhension de ce qui est lié à quoi et pourquoi ... Je suis aux prises avec un scénario qui m'a dérouté. J'espère que quelqu'un peut me mettre en ligne droite ...Navigation & View Controller questions

Dites que je commence avec votre application iPhone View-Based typique et que j'affiche une vue qui est manipulée par le contrôleur de vue (viewController). Ensuite, après un certain événement, j'aimerais remplacer cette vue par une vue basée sur la navigation «typique» (rootVC). Je voudrais créer autant que possible dans IB. Mes questions ont à voir avec comment montrer rootVC et enlever toutes les traces du viewController précédent car l'utilisateur n'aura jamais besoin de retourner et où/comment câbler dans le navController dans IB. À l'heure actuelle quand il est temps de montrer l'rootVC Je ne les suivre dans mes viewController:

RootVC *rvc = [[RootVC alloc] initWithNibName:@"RootVC" bundle:nil]; 
[rvc.view setFrame:[[UIScreen mainScreen] applicationFrame]]; 

ViewTestAppDelegate *appDelegate = (ViewTestAppDelegate *)[[UIApplication sharedApplication] delegate]; 
self.rootVC = rvc; 
[rvc release]; 
[appDelegate.viewController.view removeFromSuperview]; 
[appDelegate.window addSubview:rootVC.view]; 
[appDelegate.viewController release]; 

rootVC affiche sauf viewController a encore un compte de conserver 1?!?

De même, où le navigateur navigationCRV de rootVC doit-il être instancié? Après avoir démarré avec le modèle View-Based, MainWindow.xib contient un objet pour viewController (qui possède son propre ViewController.xib), un appDelegate et un UIWindow. Mon RootVC.xib contient un UITableView. Ai-je besoin d'un autre contrôleur de vue intermédiaire qui aura un autre objet ApplicationDelegate que je connecte à un objet UIWindow et un UINavigationController? Le contrôleur de vue qui accompagne l'objet contrôleur de navigation d'IB serait alors défini sur ma classe RootVC?

Désolé pour le verbosité. C'est difficile pour moi d'expliquer. Parce que certains objets dans IB sont des proxies et certains sont "réels", il est parfois déroutant (pour moi) lorsque vous essayez de "nouvelles" choses sur ce qui est nécessaire, où & quand. Fondamentalement, je veux savoir pour mettre en place une vue menant à une autre sans retour à la première vue. La deuxième vue devient essentiellement la racine "principale" qui apparaît dans plusieurs directions ...

+0

Personnellement, je préfère ne pas utiliser IB pour iPhone Dev, car il est assez facile de faire des iPhone UI. IB est meilleur pour faire des interfaces utilisateur complexes (c'est-à-dire sur OS X, pas sur iPhone). – mk12

+0

@ Mk12: Ne craignez pas l'Interface Builder: http://iphonedevelopment.blogspot.com/2009/10/dont-fear-interface-builder.html –

Répondre

0

J'ai été capable de le comprendre en mettant une référence à viewController dans la plume de MainWindow et puis autoreleasing le viewController après avoir ajouté la navigationController & rootVC à l'UIWindow. J'ai appris une ou deux choses sur IB en cours de route. Assez puissant ...

0

Je vous recommande d'utiliser le modèle d'application iPhone basé sur la navigation et de présenter votre vue ponctuelle comme une vue modale en haut de la vue racine.

Questions connexes