performSegueWithIdentifier 处的“无法识别的选择器发送到实例”
Posted
技术标签:
【中文标题】performSegueWithIdentifier 处的“无法识别的选择器发送到实例”【英文标题】:"unrecognized selector sent to instance" at performSegueWithIdentifier 【发布时间】:2014-04-16 01:08:59 【问题描述】:所以我在视图控制器中有一个以编程方式添加的按钮。因此,我创建了一个直接从根视图控制器到下一个视图控制器的推送序列。已经嵌入了导航控制器。
这是我设置按钮并添加它的目标;
registerButton = [UIButton buttonWithType:UIButtonTypeCustom];
[registerButton addTarget:self action:@selector(pushRegisterScreen) forControlEvents:UIControlEventTouchUpInside];
这就是pushRegisterScreen;
- (void) pushRegisterScreen
[self performSegueWithIdentifier:@"registerSegue" sender:self];
但是这会抛出这个异常;
'NSInvalidArgumentException', reason: '-[RegisterScreen _setViewDelegate:]: unrecognized selector sent to instance 0x8d70d70'
使用 Xcode 的第一天耶!
【问题讨论】:
设置异常断点。打开断点导航器并单击左下角的+
。 (导航器位于 Xcode 窗口的左侧)。
【参考方案1】:
当您将视图的类(可能是您的控制器的主视图)设置为不是 UIView 子类的类时,我已经看到此错误。确保在设置控制器的自定义类(在情节提要中)时,已将其设置在控制器上,而不是视图上。
【讨论】:
你是救生员!我不小心将注册屏幕场景中的控制器和视图的类设置为从 UIViewController 子类化的 RegisterScene 类。【参考方案2】:您是否真的在情节提要中设置了标识符@“registerSegue”?为此,请转到有问题的视图控制器并单击它,然后转到身份检查器(右侧面板)并为视图命名。如果您已经这样做了,那么问题出在另一个位置。
【讨论】:
我在情节提要中为Push Segue from Welcome Screen
设置了registerSegue
标识符。您是否建议我将原始视图称为?
从欢迎屏幕推送 Segue 是什么意思?您是否有从 UIButton 创建到情节提要中的另一个 UIViewController 的 segue?
我以编程方式创建了按钮,它不在情节提要中。所以我不得不从 View Controller 创建 segue。阅读问题。以上是关于performSegueWithIdentifier 处的“无法识别的选择器发送到实例”的主要内容,如果未能解决你的问题,请参考以下文章
performSegueWithIdentifier 出现运行时错误,为啥?
iOS8 performSegueWithIdentifier 运行太慢
performSegueWithIdentifier:sender: 找不到我的转场
unwind segue / performSegueWithIdentifier: 问题
performSegueWithIdentifier 不起作用
performSegueWithIdentifier:从 didSelectRowAtIIndexPath 调用的方法缓慢显示视图