【问题标题】:Passing Data from a UITextField in One ViewController to a UILabel in another View Controller将数据从一个 ViewController 中的 UITextField 传递到另一个 View Controller 中的 UILabel
【发布时间】:2013-09-27 23:44:20
【问题描述】:

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

我一直在关注与此问题相关的其他几个线程,我觉得我正在以完全相同的方式进行操作,但每次尝试转换应用程序时都会获得 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”

谁能帮我解决这个问题?

【问题讨论】:

    标签: cocoa-touch ios7 uitextfield segue uistoryboardsegue


    【解决方案1】:

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

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

    pvc1 = [[segue destinationViewController] topViewController];
    

    【讨论】:

    • 嗨@mpprdev - 抱歉延迟回复,我正赶上假期。实际上我的 PVC 嵌入在导航控制器中。我在想这就是为什么你必须专门识别在根视图控制器中进行发送的视图控制器。考虑到我的 VC 都嵌入在导航控制器中,我应该做些什么不同的事情?
    • @Slider257 - 如果您选择为 PreviewYesViewController 保留 UINavigationController,那么您可以这样做:pvc1 = [[segue destinationViewController] topViewController];
    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多