2012-03-25 2 views
5

J'ai actuellement un projet monotouch qui utilise une combinaison d'un Storyboard et de certains contrôleurs sans xib (ViewControllers qui n'ont pas de xib ou de référence dans le Storyboard) (par exemple, Monotouch) .Dialogue).Scénario Monotouch avec contrôleurs de vue sans xib

Tout fonctionne bien, depuis les ViewControllers de Storyboard jusqu'aux versions sans xib. Le problème que j'ai est quand j'ai besoin d'appeler à partir d'un ViewController sans xib dans un StoryController Storyboard.

flux de l'exemple:

  • scénarimage
    • TabViewController
      • FirstViewController DialogViewController (pas en scénarimage/XIB-less)
        • AnotherViewController

Le problème est lors du chargement du AnotherViewController par exemple.

var avc = new AnotherViewController(); 
avc.Person = person 
_dvc.ActivateController(avc); 

J'ai dû créer un constructeur vide sur AnotherViewController pour rendre cela possible. Cette vue est ensuite chargée, mais n'est qu'un UIViewController vide (pas celui de mon Storyboard). Je ne peux pas configurer une Segue entre le MT.Dialog avec le AnotherViewController dans Interface Builder parce que le DialogViewController est créé par programme. La solution de contournement est d'oublier complètement AnotherViewController dans le Storyboard et de créer simplement celui-là par programmation - mais c'est vraiment dommage que je ne puisse pas combiner/mélanger les vues de Storyboard avec celles de programmation.

Des conseils (ou des extraits C# monotouch) seraient très appréciés!

+0

Je ne suis pas sûr d'avoir bien compris: vous voulez faire apparaître votre 'AnotherViewController' - qui est conçu avec IB dans votre storyboard - à partir d'un contrôleur de vue conçu par programmation, n'est-ce pas? – psycho

Répondre

0

Vous pouvez créer un contrôleur de Storyboard, il suffit d'ajouter à identifier (dans Storyboard), puis faire:

YourController *c = 
[storyboard instantiateViewControllerWithIdentifier:@"YourIdentifier"]; 

ne pas oublier d'initialiser vos instances en viewDidLoad, parce que initWithNibName ne sera jamais appelé

Questions connexes