2010-07-08 107 views
0

多个UIViewControllers可以同时工作吗?请看下面的窗口:多个UIViewController同时工作?

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

C是第一次的UIViewController添加到窗口。

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

A_ViewController被加载并正常显示:

在C_ViewController的viewDidLoad中,我通过加入一个NIB(A)。但是,如果连接从A_ViewController.xib到IBOutlet中的A_ViewController.m(如buttonClick)任何情况下,有当事件被触发的错误:

***终止应用程序由于未捕获的异常 “ NSInvalidArgumentException”的,理由是: ' - [NSCFString buttonClicked:]:无法识别 选择发送到实例 0x5937a40'

的问题,是有可能有多个的UIViewController在同一时间工作?在本例中,一个用于C,一个用于A,另一个用于B

增加: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]; 

回答

0

你有没有尝试保留您A_ViewController实例? 我不确定viewcontroller是否被它的视图所保留。

+0

我在问题中添加了头文件。 – ohho 2010-07-08 09:39:26