【发布时间】:2013-11-14 15:58:02
【问题描述】:
我处于“很棒”的位置,必须支持别人的代码,尽管在这个项目之前我从未在 Objective C 中工作过或制作过 iOS 应用程序,所以如果我在做一些非常明显或愚蠢的事情,请原谅我.
我需要一个带有自定义类的新视图控制器。首先,我在故事板上绘制视图。然后我创建了一个从 UIViewController 派生的新类。然后,我将视图的自定义类设置为我创建的这个新类。我将视图上的单个按钮连接到代码,这样我就可以关闭视图,然后我做了一个(手动/模态)segue,这样我就可以从我的主菜单中调用这个新视图。所有这些都应该很好地连接起来,因为我以前用过它,但我会告诉你我是如何调用 segue 的:
[self performSegueWithIdentifier:@"ScoreCard" sender:self];
现在,我的问题是当我按下按钮运行上面的,我得到以下错误:
-[Scores _setViewDelegate:]:无法识别的选择器发送到实例 0x9b4c460
Scores 是我的自定义 UIViewController 类的名称。它的 .h 文件现在看起来很简单:
#import <UIKit/UIKit.h>
@interface Scores : UIViewController
- (IBAction)goBack:(id)sender;
@end
.m 文件除了 Xcode 默认放入的内容和我的 goBack 实现之外,什么都不做:
- (IBAction)goBack:(id)sender
{
[self dismissModalViewControllerAnimated:YES];
}
有人知道我忘记了什么吗?我昨天以同样的方式成功地添加了另一个视图控制器,并且那个工作得很好。为什么没有这个?
【问题讨论】:
-
发布 prepareForSegue 方法的内容(在执行 segue 的视图控制器中)
-
您在情节提要中创建了哪种类型的转场(推送、模态)?目前尚不清楚您为什么在 goBack 方法中同时关闭和弹出视图控制器。
-
@SPA: 我的
prepareForSegue方法不包含与此特定转场相关的任何内容,因为我只想执行它,无需准备任何东西。 @rdelmar:这是一个模态转场。我从我的前任某处所做的事情中复制/粘贴了这种关闭它的方式。我认为我必须删除流行音乐?虽然我不认为这与我现在遇到的问题有关。 -
你肯定需要删除流行音乐。试试看是否能解决问题。另外,您在 Scores 中有一个名为 viewDelegate 的属性吗?鉴于您发布的代码,我看不出该错误来自哪里。
-
查看其他问题,似乎其他人在更改控制器视图的类而不是控制器本身时遇到了这个错误。在 IB 中,选择控制器和视图并检查它们的类。
标签: ios objective-c segue xcode-storyboard