2013-06-06 7 views
0

J'essaie de faire fonctionner mvvmcross pour un développement iOS et je peux le faire fonctionner si j'avais du code mes vues en ajoutant tous les contrôles nécessaires dans le code. Cela fonctionne, mais c'est une énorme douleur à développer de cette façon. Je veux travailler avec les fichiers xib dans xcode pour définir l'interface, mais je n'arrive pas à comprendre comment faire fonctionner ça. J'ai une classe de vue comme celui-ci:Travailler avec Mvvmcross et Xibs

[Register("FirstView")] 
public partial class FirstView : MvxViewController 
{ 
    public FirstView() : base("FirstView",null) 
    { 
    } 

    public FirstView(IntPtr handle) : base(handle) 
    { 
    } 


    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
    } 
} 

-je ajouter une vue d'iphone appelé « FirstView.xib », ouvrez-le dans Xcode et le premier problème que je cours en est qu'il a créé une vue, pas un contrôleur de vue, donc je peux définir la classe à FirstView. Donc, je supprime la vue, ajouter un UIViewController et il me permet de définir la classe à FirstView. Ensuite, je fais glisser une vue sur mon contrôleur de vue et j'ajoute une zone de texte, une étiquette et un bouton. Je quitte xcode et Xamarin fait son truc et crée l'autre moitié de ma classe partielle. Cependant, lorsque j'essaie d'exécuter le code dans le simulateur de l'iPhone, cela ne fonctionne pas. Il démarre et se ferme immédiatement sans jamais montrer ma vue.

Je vois un tas de choses dans la fenêtre de sortie de l'application dans le studio Xamarin, c'est peut-être pertinent?

2013-06-06 10: 47: 13,666 MyAppIPhoneUI [26190: C07] Les fenêtres d'application devraient avoir un contrôleur de vue racine à la fin du lancement de l'application 06/06/2013 10: 47: 13.668 MyAppIPhoneUI [26190: c07] TouchNavigation: Diagnostic: 0.10 Naviguer demandé 2013-06-06 10: 47: 13.691 MyAppIPhoneUI [26190: c07] mvx: Diagnostic: 0.13 La requête est nulle - en supposant qu'il s'agit d'une situation de type TabBar où ViewDidLoad est appelée pendant construction ... patcher la demande maintenant - mais attention aux problèmes avec les appels virtuels pendant la construction 2013-06-06 10: 47: 13.697 MyAppIPhoneUI [26190: c07] mvx: Avertissement: 0.13 Exception masquée NullReferenceException: Référence d'objet non définie sur une instance d'un objet chez Cirr ious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel (Demande Cirrious.MvvmCross.ViewModels.MvxViewModelRequest, IMvxBundle savedState) [0x00000]

Toute idée de ce que le problème pourrait être? Est-il réellement possible de définir ma vue dans un xib et d'utiliser mvvmcross? J'ai vu le YouTube de Slodge où il utilise un xib pour définir un UITableCellView, mais pas une vue entière.

Répondre

1

De la trace la question « ne démarre pas » est de faire avec:

Référence d'objet non définie à une instance d'un objet à Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel

Je ne suis pas sûr de ce qui est à l'origine de ce problème - il est difficile de dire à partir de la trace et de la description - si vous mettez un exemple de projet quelque part, quelqu'un de mvx peut le voir.


Sinon il y a un peu plus à des vidéos de date pour travailler avec XIBs

Ceux-ci sont contenues dans ce N + 1 index - http://mvvmcross.wordpress.com

En particulier, voir:

+0

Huh? Impair. J'ai supprimé ma classe de vue et le xib et j'ai suivi (presque) exactement ce que vous avez fait dans la vidéo pour ajouter un contrôleur de vue et cela a fonctionné. Peut-être que le problème était avec moi ayant initialement une vue plutôt qu'un contrôleur de vue. J'avais déjà regardé cette vidéo auparavant, mais je n'avais pas été aussi loin. Merci. Une chose étrange que j'ai est que ma solution dans Xamarin montre maintenant deux copies de FirstModel.designer.cs et deux copies de FirstModel.xib (un dans le dossier de la vue et un dans le dossier racine), ce qui est plutôt étrange. –

+0

Je suppose que les chances sont que le problème précédent aura été de faire avec un 'propriétaire' ou 'premier répondant' ou autre paramètre caché dans le xib - 4 ans de travail avec ces choses et je ne les comprends toujours pas ... les deux copies des fichiers du concepteur vont disparaître si vous redémarrez XS - mais en tout cas, consignez cela comme un bug avec le support de xamarin (il faut corriger) – Stuart

+0

Merci encore Stuart. Je ne fais que commencer le développement d'iOS et j'ai l'impression que xcode me combat activement à chaque étape! Ayant déjà fait beaucoup de choses avec WPF, j'apprécie vraiment votre travail avec mvvmcross pour m'avoir aidé à combler le fossé avec quelque chose de familier. –