多个UIViewControllers是否可以同时工作?请考虑以下窗口:
+-----------------+
| +-----+ |
| | | |
| | A | C |
| | | |
| +-----+ |
| |
| +-----+ |
| | B | |
| +-----+ |
| |
+-----------------+
C
是第一个添加到窗口的UIViewController。
在C_ViewController的viewDidLoad中,我添加了一个NIB(A):
A_ViewController *avc = [[A_ViewController alloc] initWithNibName:@"A_ViewController" bundle:nil];
[self.view addSubview:avc.view];
[avc release];
加载A_ViewController并正确显示。但是,如果将A_ViewController.xib中的任何事件链接到A_ViewController.m中的IBOutlet(例如buttonClick),则触发事件时会出错:
***由于未被捕获而终止应用 例外 'NSInvalidArgumentException',原因: ' - [NSCFString buttonClicked:]: 无法识别的选择器发送到实例 0x5937a40'
问题是,是否可以让多个UIViewController同时工作?在此示例中,一个用于C
,一个用于A
,另一个用于B
。
ADDED:C_ViewController的头文件
@class A_ViewController;
@interface C_ViewController : UIViewController {
A_ViewController *avc;
}
@property (nonatomic, retain) IBOutlet A_ViewController *avc;
@end
解决方案:
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 :(得分:0)
您是否尝试过保留A_ViewController实例? 我不确定它的视图是否保留了viewcontroller。