【发布时间】:2010-04-02 01:18:22
【问题描述】:
我有一个拒绝工作的视图中的按钮。我已经在 X-Code 的空白默认视图应用程序中工作,但在我的任何应用程序中都不会工作,而是给我以下错误。
由于未捕获而终止应用 例外 'NSInvalidArgumentException',原因: '*** -[UIViewController showVicInfo:]: 无法识别的选择器发送到实例 0x3c084f0'
调试器也没有任何帮助。我已经确保我也将按钮连接到文件的所有者(而不是相反)。下面是操作的代码。而且我知道这不是警报视图,因为断点甚至没有到达那里。
关于.h
@interface about : UIViewController {
}
-(IBAction)showVicInfo:(id)sender;
关于.m
-(IBAction)showVicInfo:(id)sender {
UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"You require an internet connection via WiFi or cellular network for iFirelert to work." delegate:self cancelButtonTitle:@"OK, thanks" otherButtonTitles:nil];
[myAlert show];
[myAlert release];
}
更新:仅供参考,这就是我创建按钮的方式,如果有帮助的话。
- 已创建新视图(文件>新文件>UIViewControllerSubclass w/XIB 用于接口)
- 添加 -(IBAction)showInfo:(id)sender;到 about.h
- 已添加
- -(IBAction)showVicInfo:(id)sender { UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"没有网络 连接”消息:@“您需要一个 通过 WiFi 连接互联网或 iFirelert 的蜂窝网络 工作。” 代表:self cancelButtonTitle:@"好的,谢谢" 其他按钮标题:无]; [我的警报节目]; [我的警报发布]; } 到 about.m
- 在 Interface Builder 中打开 About.xib,将一个矩形按钮拖到视图上
- 通过按住 ctrl 单击按钮到文件的所有者属性(而不是相反),将按钮连接到 -showVicInfo 操作。
- 已检查文件所有者是否设置为“关于”类。
然后在 X-Code 中构建并运行失败。
更新 2:好的,我已经确定它必须是我现有项目中的设置或其他东西。我已经复制了两个类文件和 XIB 文件,它们在另一个 X-Code 项目中工作,但按钮也在现有应用程序中引发相同的错误。
【问题讨论】:
-
如何创建
about实例?听起来您正在初始化一个普通的旧UIViewController instead。此外,这对于一个班级来说是一个糟糕的名字。至少将类名大写。也许AboutController会很好。 -
我已将要在 Interface Builder 中加载的 NIB 设置为 about.xib,我将重命名它,它只是一个测试类,看看它是否可以工作,但它没有。跨度>
-
about.xib中ViewController的类是什么?它在第 4 个选项卡中(我忘记了标题、身份?),但是您可以使用 command-4 键来访问它。类应该是“关于”。
-
是的,就是这样。但仍然没有工作大声笑。现在真的很烦。
-
检查上面的更新信息 - 我已经写了我是如何创建按钮的,也许我做错了什么?
标签: iphone interface-builder uibutton ibaction