0

我遇到一个问题,当我从某个视图控制器调用 IBaction 时,应用程序崩溃,但我可以在其他地方获得所需的结果。

基本上我有一个隐藏在标签栏控制器中的导航控制器。如果我从导航控制器的第一个视图调用 IBActions 它可以正常工作,但是如果我使用 initWithNib 创建一个视图并将其推送到导航控制器堆栈,然后尝试在我推送的视图控制器实例上调用 IBAction堆栈应用程序崩溃。

当应用程序首次加载时,菜单栏中会出现一个“x”按钮,用于拉出地址簿选择器。这很好用。如果您单击菜单栏中的“新建”按钮,则会创建属性视图并将其推送到堆栈上。这个新视图有一个名为“选择账单”的按钮,它在 IBAction 调用中只有一个日志语句,但仍会导致崩溃。“选择账单至”按钮的 IBAction 位于该视图视图控制器中。

任何解决此问题的帮助将不胜感激。

可以在http://www.swnsn.com/S4X.zip找到源代码

4

2 回答 2

0

我只是一个初学者。所以我的建议可能不对。

一种。

我检查了调试器控制台,以下错误是 'NSInvalidArgumentException',原因:'*** -[UIViewController pickBillTo:]: unrecognized selector sent to instance 0x44487f0' 我不确定问题是什么。

B.

-(IBAction)pickBillTo:(id) selector{ // Your code
-(IBAction)pickBillTo:(id) sender{ // my suggestion

C。

您还没有释放按钮、名字、姓氏、数字的内存

于 2010-07-09T03:20:45.577 回答
0

您正在尝试将 pickBillTo: 发送到 UIViewController 的实例,而不是您的自定义子类。

在 FirstViewController.m 中,更改:

UIViewController *newView = [[UIViewController alloc] initWithNibName:@"NewOrderView" bundle:nil];

到:

NewOrderView *newView = [[NewOrderView alloc] initWithNibName:@"NewOrderView" bundle:nil];

您还必须导入 NewOrderView.h,您可能应该将该类重命名为 NewOrderViewController,并将变量命名为 newViewController,因为它是一个控制器,而不是一个视图。

于 2010-07-09T06:33:04.167 回答