以编程方式回调按钮时发送到实例的无法识别的选择器

Posted

技术标签:

【中文标题】以编程方式回调按钮时发送到实例的无法识别的选择器【英文标题】:Unrecognized selector sent to instance when calling back button programmatically 【发布时间】:2012-07-07 06:38:34 【问题描述】:

单击表格中的记录时,我正在查看详细信息视图。当我使用

从详细视图中调用后退按钮时
- (IBAction)loadDispensary 

    [self.navigationController popViewControllerAnimated:YES];

我收到无法识别的选择器错误。

我尝试通过以下两种方式推送细节控制器。

Push type 1
detailViewController *detailView = [[self storyboard] instantiateViewControllerWithIdentifier:@"detailView"];
detailView.strain = self.selectedStrain;
[self.navigationController pushViewController:detailView animated:YES];

Push type 2
[self performSegueWithIdentifier: @"detailSegue" sender: self];
//Set the strain on the prepareForSegue

【问题讨论】:

按钮是怎么连接的?你能显示代码吗? 还完整显示特定的错误字符串(什么选择器,什么对象?) @samfisher 这是按钮的连接方式,如果您将其作为答案,我会将其标记为已接受。 @samfisher 你的答案消失了。 . . @Jhorra 刚刚发布了相同答案的另一个版本.. 【参考方案1】:

按钮是如何连接的?你可以显示代码吗?也许您可能没有将按钮正确链接到 IBAction。

【讨论】:

【参考方案2】:

我认为您可能正在尝试弹出已弹出的视图控制器。如果你有一个 UINavigationController 并且你通过 segue “推送”一个视图控制器,那么显示在屏幕左上角的后退按钮已经配置好了。您不必自己放一个。如果您以编程方式将按钮放置在左侧栏按钮位置,它将代替 UINavigation 的按钮显示。

尝试移除按钮并允许 UINavigationController 管理返回,看看是否效果更好。

【讨论】:

之前有一个答案我标记为接受,我更改了按钮指向的方法的名称。 这很奇怪。哦,至少你找到了答案。【参考方案3】:

有人让我粘贴完整的错误代码,当我这样做时,我看到按钮指向的方法不再存在,所以它试图调用一个不存在的方法。

【讨论】:

以上是关于以编程方式回调按钮时发送到实例的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

performSegueWithIdentifier 处的“无法识别的选择器发送到实例”

错误:单击按钮时“将无法识别的选择器发送到实例”

从另一个类触摸时的 Swift 按钮操作选择器:无法识别的选择器发送到实例

无法识别的选择器已发送至实例:

Swift 3:发送到实例 Xcode 8 的无法识别的选择器 [重复]

Swift无法识别的选择器发送到实例错误