【问题标题】:Passing data from one ViewController to other in seque按顺序将数据从一个 ViewController 传递到另一个 ViewController
【发布时间】:2014-10-04 13:54:15
【问题描述】:

下面的代码有什么问题。它与 SIGABRT 崩溃(发送到实例的无法识别的选择器)

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"%@",valueName);
    if([segue.identifier isEqualToString:@"pushView"])
    {
    secondViewController *svc = (secondViewController *)[segue destinationViewController];

    svc.passedName = valueName;
    }

}

valueName iVar 是我想要传递的 NSString。

【问题讨论】:

  • 发布崩溃详情。以及设置此序列的情节提要的屏幕截图。
  • 你忘了pushView segue 标识符吗?
  • 我有 segue 标识符。

标签: ios objective-c storyboard segue


【解决方案1】:

1) 别忘了将FirstViewController 嵌入到NavigationController

2)别忘了设置你的segue标识符。

3) 使用与您相同的代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    //for example if you value is "123"
    NSString *valueName = @"123";
    NSLog(@"%@",valueName);
    if([segue.identifier isEqualToString:@"pushView"])
    {
        secondViewController *svc = (secondViewController *)[segue destinationViewController];
        svc.passedName = valueName;
    }
}

4) 现在,在您的secondViewController 中,将您的值记录在ViewDidLoad 中,看看它是否通过...

- (void)viewDidLoad
{
    NSLog(@"value: %@", self.passedName);
}

5) 你应该得到的结果:

【讨论】:

  • 我已经按照你上面提到的每一步做了。由于我使用的是 Xcode 6 beta 5,因此 Push(现已弃用)segue 已更改为“Show”。我想知道这是否是问题所在。
  • 不,你的错误不是因为 Xcode6 beta 5 被折旧。您的错误在其他地方。检查您的连接。您是否删除了情节提要中的某些内容并且没有删除连接?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2016-07-26
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多