0

我有一个 MasterViewController.hmxib (UIViewController),它通过以下方式打开一个 TestDummy.hmxib (UIViewController):

TestDummy *controller = [[TestDummy alloc] initWithNibName:@"TestDummy" bundle:nil];
[scrollView addSubview:controller.view];

我在 TestDummy 中有两个按钮:(打开)、(关闭)和一个标签:(windowDepth)。

我正在尝试创建由第一个 TestDummy 打开的第二个实例 TestDummy。然后让多个 TestDummy (UIViewController) 打开到 N 深度并允许关闭按钮将它们带回零深度。这是我的“打开”按钮。

-(IBAction) btnOpen_Clicked{
TestDummy *newController = [[TestDummy alloc] initWithNibName:@"TestDummy" bundle:nil];
newController.isNotRoot = YES;
newController.windowDepth = self.windowDepth + 1;
//do stuff...
childDummy = newController;

// start the animated transition
[UIView beginAnimations:@"page transition" context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

//insert your new subview
[self.view addSubview:newController.view];

// commit the transition animation
[UIView commitAnimations];
[newController release];

}

当我这样做时,我在调试控制台中收到错误。

2010-10-07 00:59:12.549 OrionClient[5821:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType btnOpen_Clicked]: unrecognized selector sent to instance 0x6a339a0'

一定是内存管理问题,但我无法弄清楚。

提前致谢。

4

3 回答 3

0

'NSInvalidArgumentException',原因:'-[__NSCFType btnOpen_Clicked]:无法识别的选择器发送到实例 0x6a339a0'

这意味着您正在尝试在该实例上调用不存在的方法。你是如何定义 btnOpen_Clicked 选择器的?我猜它应该看起来更像,但真的需要看看你是如何定义选择器的。

-(IBAction) btnOpen_Clicked:(id)sender
于 2010-10-07T08:09:24.030 回答
0

这意味着应用程序找不到您的方法btnOpen_Clicked

首先使用以下命令重命名您的方法:

-(IBAction) btnOpen_Clicked:(id)sender

然后确保此方法规范在 .h 文件中并在带有 TestDummy.xib 的 InterfaceBuilder 中,还要确保按钮和此方法之间的链接正确完成,例如 TouchUpInside 事件。

于 2010-10-07T08:11:03.623 回答
0

解决了它删除了最后一行 [newController release]; 需要弄清楚在哪里实际正确调用它。

于 2010-10-07T08:29:56.930 回答