2010-09-29 20 views
0

Je suis conscient que certains d'entre vous ne sont peut-être pas familiers avec Monotouch, mais il s'agit certainement d'un problème général iOS plutôt que d'un problème Monotouch spécifique.UIToolbar disparaît après avoir ignoré Modal View Controller

Je suis en recréant une application avec une fonctionnalité similaire à l'application de messagerie par défaut: UITableview with UIToolbar at bottom

Ceci est un simple divertissement de notre application. C'est un UIView qui contient un UITableView et un UIToolbar. Il est chargé à partir d'un fichier XIB (qui contient le code du contrôleur de vue associé). Cette vue est une vue UITabController (bien que je suis sûr que cela ne devrait pas affecter les choses?).

alt text

Cela a été poussé d'un contrôleur de navigation à l'aide

controller.PushViewController(inboxItem.Controller, true); 

(où inboxItem est un objet personnalisé que je l'ai fait, la propriété contrôleur étant le contrôleur de vue du inboxItem). En appuyant sur le bouton droit de la barre d'outils, vous affichez une nouvelle vue modale (composez un nouveau message), qui fait son effet et quel que soit le mode de suppression, le UIToolbar disparaît. Cependant, si je dois cliquer sur un autre onglet puis revenir sur cet onglet, la barre d'outils réapparaît. Est-ce un problème de redessiner? Est-ce que je fais quelque chose de mal dans la façon dont je structure mon application? Ou est-ce que je suis tombé sur un bug iOS/Monotouch bizarre? (J'espère que c'est pour l'ancien - donc je peux améliorer mon développement iOS).

+0

Y at-il une raison particulière pour laquelle vous avez ajouté manuellement la barre d'outils plutôt que d'utiliser la barre d'outils de navigationController? Il est également étrange que le propriétaire de ce qui semble être XIB de viewcontroller soit une tableView et non un viewcontroller. – FelixLam

+0

C'est là que mon manque de connaissances iOS devient apparent. J'ai modifié le code de sorte qu'il utilise la barre d'outils de navigationController et que je reçois toujours le même problème. En outre, "InboxTableView" est le nom d'un viewController (la vue précédente à partir de laquelle cette vue est poussée). – Luke

Répondre

0

J'ai résolu le problème. Fondamentalement, ce qui se passait était quand le ModalView a été présenté et ensuite rejeté, le ToolBar a été déplacé de 44 pixels à chaque fois.

Dans mon exemple, la barre d'outils est placée au-dessus d'un UITabBar, donc lorsque la vue modale a été fermée, la barre d'outils a été déplacée hors de la vue. Je ne suis pas sûr de ce qui se passe mais je serai sûr de déposer des rapports de bogues appropriés. Un moyen rapide et très (très) sale consiste à déplacer la barre d'outils de 44 pixels lors de l'affichage de modalview, de sorte que lorsqu'elle sera fermée, elle la ramènera à la position appropriée.