0

我被困在看起来相当简单的事情上,并寻找我能得到的任何建议。我试图从一个视图控制器中的多个文本字段传递数据,以在另一个视图控制器中显示为标签的文本。

我一直在关注与此问题相关的其他几个线程,我觉得我正在以完全相同的方式进行操作,但每次尝试转换应用程序时都会获得 CTD。这是我的设置;

  • 在 Storyboard 中,在 VC 之间创建了一个 Segue,并给它一个自定义标识符(“预览”)。其余代码如下:

VC2(包含标签的目标视图控制器)

。H

@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) NSString *nameLabelName;

.m(在 viewDidLoad 之后)

_nameLabel.text = _nameLabelName;

VC1(包含文本字段的根视图控制器)

.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"Preview"]) {
PreviewYesViewController *pvc1;
pvc1 = [segue destinationViewController];
pvc1.nameLabelName = _nameTextField.text;
}
}

同样,每次我运行它时,我都会收到一个 SIGABRT 错误,声称:

2013-09-27 19:28:37.580 ****[45758:a0b]-[UINavigationController setNameLabelName:]:无法识别的选择器发送到实例 0xa27fd10
2013-09-27 19:28:37.584 ****[45758:a0b ] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UINavigationController setNameLabelName:]:无法识别的选择器发送到实例 0xa27fd10”

谁能帮我解决这个问题?

4

1 回答 1

0

您的 pvc1 变量指向 UINavigationController。那就是: [seque destinationViewController] 正在返回一个UINavigationController实例。你应该检查你的故事板以确保目标视图控制器没有嵌入到 NavigationController 中。

编辑:如果您选择为 PreviewYesViewController 保留 UINavigationController,那么您可以这样做:

pvc1 = [[segue destinationViewController] topViewController];
于 2013-12-29T04:41:52.960 回答