deltaview
是 DeltaViewController 类型,所以它是一个控制器,而不是一个视图。将其添加为 self.view ([self.view addSubview:deltaview.view];) 的子视图后,您可能会释放deltaview
. 然后,每当您向 发送一个方法(在 DeltaViewController 中实现)时deltaview
,您当然会得到这个 EXC_BAD_ACCESS 错误。
一个简单的解决方案:只需deltaview
将(实际上应该deltaViewController
改为)声明为 iVar 而不是局部变量。
编辑:
好吧,这是一个简单的代码片段:
你的视图控制器.h:
@interface YourViewController : UIViewController
@property DeltaViewController *deltaViewController;
@end
你的视图控制器.m:
@implementation YourViewController
@synthesize deltaViewController;
...
- (void)aMethod;
@end
- (void)dealloc {
self.deltaViewController = nil; // set it to nil & release it after yourViewController dealloced.
[super dealloc];
}
- (void)aMethod {
DeltaViewController *deltaViewController = [[DeltaViewController alloc] initWithNibName:@"DeltaViewController" bundle:nil];
// ...(setup deltaViewController)
self.deltaViewController = deltaViewController; // it'll retain deltaViewController
[deltaViewController release];
...
}