2013-03-26 4 views
0

J'espère que quelqu'un peut aider avec ce problème que j'ai en utilisant monotouch avec des fichiers xib. J'essaie de créer une sous-vue dérivée de uiview. Dans IB, je crée une classe, définissez son type sur celui de ma classe personnalisée, puis liez tous les IBOutlets à la classe personnalisée (c'est là que je pense que l'erreur peut être, car je suppose que cela devrait être le propriétaire des fichiers).Monotouch personnalisé UIView

l'exemple de fichier d'un IB est

@interface ActivityUtilityView : UIView { 
UILabel *_ActivityLabel; 
UILabel *_CaptionLabel; 
} 

@properrty (nonatomic, retain) IBOutlet UILabel * ActivityLabel; 
@properrty (nonatomic, retain) IBOutlet UILabel * CaptionLabel; 

@End 

Dans le code d'application ce point de vue doit être chargée au moment de l'exécution à l'aide.

var intptr = NSBundle.MainBundle.LoadNib("ActivityUtilityView",parent_controller,null).ValueAt(0); 
m_ActivityView = new ActivityView(intptr); 

Le premier problème est qu'aucun des IBOutlets n'est instancié.

Le deuxième problème est que la vue est créée deux fois, d'après ce que je peux dire.

S'il vous plaît quelqu'un peut-il vous aider?

EDIT

J'ai découvert que la moitié du problème est que les sorties ne sont pas instanciés jusqu'à ce que la vue est affichée.

Alors, comment puis-je forcer l'affichage d'une sous-vue?

Répondre

0

J'ai trouvé une solution qui fonctionne. La création de la vue à l'aide du constructeur IntPtr n'instancie pas les IBOutlets tant que la vue n'a pas été affichée. Cette méthode semble.

Pour clarifier le problème d'arrose dû à une condition de concurrence sur les threads de travail en arrière-plan.

Questions connexes