我将一个动作拖到ViewController.h区域(这是我的dayNight按钮),如图所示:
//
// ViewController.h
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
- (IBAction)dayNight:(id)sender;
- (IBAction)insulationClick:(id)sender;
现在我决定要阅读:
- (IBAction)dayNightClick:(id)sender;
所以我手动重命名,如上图所示。我还在ViewController.m文件中重命名它:
- (IBAction)dayNight:(id)sender{}
为:
- (IBAction)dayNightClick:(id)sender{}
当我执行代码时,一旦我使用我的按钮,我就会收到错误。
如果我手动重命名(没有单词Click),它会再次起作用。
为什么我不能手动修改代码行。还有其他位置我必须重命名代码吗?
错误是:
Thread1: signal SIGABRT
并指向main.m文件中的这行代码:
int main(int argc, char *argv[])
{
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
我确信这是一个非常基本的问题。
答案 0 :(得分:2)
这是因为您的故事板/笔尖仍然指向旧名称。 nib文件基本上只是后台的XML文件,因此您需要打开笔尖/故事板,转到显示所有引用的检查器。您会发现您对IBAction的旧引用仍然存在。通过点击小十字架删除它并再次将其拖入ViewController并将其与您重命名为的函数连接。
如果您在头文件中更改方法签名,请务必记住更新storyboard + .m:)
答案 1 :(得分:1)
我发现以下内容:
现在您可以重新开始并将按钮重命名为您喜欢的任何内容。在我的示例中,我将其重命名为:
(IBAction)dayNight:(id)sender{}
为:
(IBAction)dayNightClick:(id)sender{}
所以这是重命名,删除对该按钮的所有引用,然后再次创建它。请注意,要删除它的其他两个地方是:
在* .h文件中,我删除了这一行:
(IBAction)dayNight:(id)sender {}
并在* .m文件中,示例我删除了此代码:
(IBAction)dayNight:(id)sender{}
{
// code in here
}
答案 2 :(得分:0)
是。该按钮具有一个相关的目标/选择器,当它按下时它会调用。寻找包含以下内容的行:
[button addTarget:self action:@selector(dayNight:) forControlEvents:UIControlEventTouchUpInside];
并在此处更改选择器。