0

我的主要应用程序是使用 Storyboard 来展示我的所有观点。下一步...我还有一个 xib 文件,其中包含一些按钮,我想将它们应用到一种花哨的覆盖中。使用我在这里找到的一种技术,这也很有效:http: //www.stackoverflow.com/a/12574190/949538

文件所有者连接到主视图控制器。从我的主视图上的一个按钮,我可以很好地弹出这个 xib。

问题来自试图将 IBAction 附加到我放在这个 xib 上的任何东西上。我所有人都没有警告,没有构建错误,一切看起来都很好。直到我打开 xib/view,然后点击我的一个按钮,然后我得到这个:

2012-11-19 15:44:48.685 Frolfer[89367:c07] -[UIViewController closeStartPanel:]: unrecognized selector sent to instance 0x8352e90
2012-11-19 15:44:48.686 Frolfer[89367:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController closeStartPanel:]: unrecognized selector sent to instance 0x8352e90'

主视图控制器.m

-(IBAction)closeStartPanel:(id)sender {
    NSLog(@"close start panel");
}

在此处输入图像描述

它必须是非常基本的东西,以至于我忘记/错过了。

有什么想法吗?

PS 从字面上看,还没有编写太多代码,但是如果您想查看更多内容,请告诉我。我不确定你想看什么……

提前致谢!!- 画了

4

2 回答 2

0

是否closeStartPanel:为此定义了选择器UIButton?你可以发布代码吗?异常清楚地表明它无法在...中找到closeStartPanel选择器UIButtonUIViewController

于 2012-11-20T03:07:27.953 回答
0

我想到了!

不知道为什么我以前没有尝试过,但现在效果很好。

通常,当我在 Storyboard 中时,我会将“Touch Up Inside”手柄拖到按钮顶部,以查看我在标题中创建的可用 IBAction。使用 xib 文件,这根本没有发生。如前所述,我将 xib 上的 Files Owner 类更改为 MainViewController。

在那之后,当将“Touch Up Inside”拖到 IB 屏幕上的按钮上时,我所有定义的 IBAction 都会按照我的预期出现。

在此处输入图像描述

这就是崩溃开始发生的地方。

今天早上,我在我的 xib 文件中删除了与 MainViewController 的所有关联,并且意外地将“Touch Up Inside”句柄交给了 First Responder。我想我很少和 First Responder 一起玩……但令我惊讶的是,我所有的 IBAction 都列在那里。出于某种原因,我以为我不会看到他们。

在此处输入图像描述

经过清理和编译......繁荣,他们工作!我想唯一的缺点(如果你想这样称呼它)是在代码视图中,它没有表明你定义的 IBAction 已连接到 IB 中的一个按钮,其中填充的灰色点就像我的直接在情节提要上的其他按钮可以。

哦,好吧,似乎正在按照我希望的方式工作(目前),所以我将继续使用它。

:-) 感恩节周末愉快。- 德鲁

在此处输入图像描述 在此处输入图像描述

于 2012-11-21T14:48:32.237 回答