0

Nouveau sur iOS et objectif C. Problème avec UINavigationController personnalisé lors du développement d'une application iPad dans le simulateur XCode. Appréciez votre aide grandement!UINavigationController ne pousse pas la vue

  1. Projet créé (application basée sur la vue) en mode XCode. L'application a actuellement deux vues. Page d'accueil et une vue détaillée. Vous voulez une page d'accueil comme Facebook ou LinkedIn page d'accueil App iPhone ... où vous avez tas d'icônes/images sur la page d'accueil, et cliquez sur chacun pour obtenir plus de détails

  2. (avec des connaissances limitées) Ne soyez pas TableView, SplitView ou TabBarView. Vous ne voulez pas d'onglet ou de style de vue de table dans la page d'accueil (comme expliqué ci-dessus). N'a pas pu démarrer le projet XCode avec le modèle "Navigation Based Application"

  3. N'a pas ajouté d'éléments d'interface utilisateur de IB à MainWindow.xib, les éléments d'interface utilisateur de page d'accueil rathar se trouvent dans otherView.xib créé par le modèle de projet. Le modèle de projet assigne rootViewController à otherViewController dans la méthode appDelegate.didFinishLaunchingWithOptions. self.window.rootViewController = otherViewController.

  4. Ajout d'un contrôleur de navigation via IB à otherView.xib. Sortie ajoutée pour navigationController. otherView.h a suivant UINavigationController *navigationController; @property (nonatomic, retain) IBOutlet UINavigationController *navigationController; referencingOutlet pour NavigationController est connecté à son fichier propriétaire

  5. Lorsque App est lancé Page d'accueil (desservie par otherViewController) arrive. En cliquant sur une icône en page d'accueil (un ImageView avec le bouton derrière), vue détaillée ne montre pas, si je l'appelle

    [self.navigationController pushViewController:DetailViewController animated:YES]; (dans la méthode d'action, c'est la manipulation touchUpInside pour ce bouton.)

mais vue détaillée apparaît si je fais soit

self.view = DetailViewController.view; ou
[self.view addSubview:DetailViewController.view];

semblent ne donc pas être un problème avec le chargement DetailView il est nibfile etc. Pas de problème également en cliquage/capture d'événement tactile, etc.

A. Quand je l'examinerai NavigationController dans le débogueur, il a à la fois les deux viewControllers dans sa pile, avec la page rootView/Home à l'index 0 et Detail View à l'index 1. navigationController n'est pas null. Des idées sur ce qui me manque?

B. Dois-je ajouter une barre de navigation à la page d'accueil (dans la vue de laquelle le contrôleur de navigation est ajouté) et à la vue détaillée? J'ai ajouté un objet navigationBar à la vue détaillée. Je n'ai pas besoin d'une barre de navigation dans l'interface utilisateur de la page d'accueil. Lorsque la vue détaillée s'affiche via l'appel addSubview ou self.view (comme mentionné ci-dessus), la barre de navigation n'affiche pas le bouton de retour (qui devrait indiquer "Home"). Les deux afficheurs contrôlent le titre approprié en utilisant self.Title = "Home" ou "Detail".

Appréciez votre aide.Merci

Répondre

0

Dans le appDelegate, vous devez faire le contrôleur de navigation une propriété puis écrire:

self.window.rootViewController = self.navigationController; 

dans didFinishLaunchingWithOptions d'application: méthode. Ensuite, placez otherViewController sur sa pile. Je pense que l'erreur que vous commettez est d'ajouter UINavigationController à UIView au lieu de l'inverse, ce qui est la bonne façon!

0

ce que vous devriez faire aussi dans votre fichier xib, sur make que vous regardez est dans un NavigationController

l'arbre de votre fichier xib devrait comme ceci:

  • votre appdelegate
  • fenêtre
  • navigation Controller
  • barre de navigation
  • et y notre rootviewcontroller
Questions connexes