我的主应用程序正在使用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'
MainViewController.m
-(IBAction)closeStartPanel:(id)sender {
NSLog(@"close start panel");
}
它必须是一种基本的东西,我忘记/遗失。
有什么想法吗?
P.S。 实际上编写的代码并不多,但如果你想看到更多内容,请告诉我。我不确定你想看到的是什么......
提前致谢!! - 画了
答案 0 :(得分:0)
是否为closeStartPanel:
定义了UIButton
选择器?你可以发布代码吗?该例外明确指出,它无法在closeStartPanel
中找到UIButton
的{{1}}选择器...
答案 1 :(得分:0)
我明白了!
我不知道为什么我之前没有尝试过,但现在效果很好。
通常当我在故事板中时,我会在我的按钮顶部拖动“Touch Up Inside”手柄,以查看我在标题中创建的可用IBActions。使用xib文件,根本没有发生这种情况。如前所述,我将xib上的文件所有者的类更改为我的MainViewController。
之后,所有我定义的IBAction都按照我预期的那样出现在将“Touch Up Inside”拖到IB屏幕上的按钮上时。
但这就是崩溃开始发生的地方。
今天早上,我删除了我的xib文件上与MainViewController的所有关联,并且偶然地将“Touch Up Inside”处理药物交给了First Responder。我想我不会和First Responder玩太多......但令我惊讶的是,我所有的IBActions都列在那里。出于某种原因,我以为我不会看到它们。
经过干净和编译......繁荣后,他们工作了!我想唯一的缺点(如果你想称之为),就是在代码视图中,它没有表明你定义的IBAction被连接到IB中的一个按钮,并且填充了灰色点,就像我的直接在故事板上的其他按钮。
好吧,好吧,似乎按照我希望的方式工作(现在),所以我只想跟它一起滚动。:-) 感恩节周末愉快。 - 德鲁