2010-07-08 2 views
0

Est-il possible que plusieurs UIViewControllers fonctionnent simultanément? Considérez la fenêtre suivante:Plusieurs UIViewController travaillant en même temps?

  +-----------------+   
     | +-----+  | 
     | |  |  | 
     | | A | C | 
     | |  |  | 
     | +-----+  | 
     |     | 
     |  +-----+ | 
     |  | B | | 
     |  +-----+ | 
     |     | 
     +-----------------+ 

C est le premier UIViewController ajouté à la fenêtre.

Dans viewDidLoad de C_ViewController, j'ai ajouté un NIB (A):

A_ViewController *avc = [[A_ViewController alloc] initWithNibName:@"A_ViewController" bundle:nil]; 
[self.view addSubview:avc.view]; 
[avc release]; 

A_ViewController est chargé et affiché correctement. Toutefois, si liant tout état de cause de la A_ViewController.xib à IBOutlet dans A_ViewController.m (par exemple ButtonClick), il y a une erreur lorsque l'événement est déclenché:

*** en raison de l'application Mettre fin uncaught exception ' NSInvalidArgumentException », raison: '- [NSCFString ButtonClicked:]: sélecteur non reconnu envoyé à l'instance 0x5937a40'

la question, est-il possible d'avoir plusieurs UIViewController travailler en même temps? Dans cet exemple, un pour C, un pour A et un pour B.

AJOUTEE: le fichier d'en-tête de C_ViewController

@class A_ViewController; 

    @interface C_ViewController : UIViewController { 
     A_ViewController *avc; 
    } 

    @property (nonatomic, retain) IBOutlet A_ViewController *avc; 

    @end 

SOLUTION:

A_ViewController *a = [[A_ViewController alloc] initWithNibName:@"A_ViewController" bundle:nil]; 
    [self.view addSubview:a.view]; 
    self.avc = a; // added this to fix!! Thanks 
    [a release]; 

Répondre

0

Avez-vous essayé de conserver votre instance A_ViewController? Je ne suis pas sûr que le viewcontroller soit retenu par sa vue.

+0

J'ai ajouté le fichier d'en-tête dans la question. – ohho