两个UIViewControllers之间用于多个UITableView单元格数据传输的一个segue标识符?

时间:2013-05-05 00:40:56

标签: uitableview xcode4

在这种情况下,我将以下值分配给stringToDisplay,并希望将其发送到SegViewController,同时保留stringToDisplay。我需要在cell.textLabel.text使用isEqualToString: @"Fire House Gallery吗?我会在这里使用indexPathUITableViewCell吗?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  SegViewController *seg = segue.destinationViewController;
  seg.delegate = (id)self;

  if ("......" isEqualToString: @"Firehouse Gallery"])
  {
      seg.stringToDisplay = @"Firehouse Gallery";
  }
  else
  {
      seg.stringToDisplay = @"Frog Hollow Craft Center";
  }
}

谢谢你, 格雷格

2 个答案:

答案 0 :(得分:1)

答案简短:

您不应该从表格视图单元格派生数据,因为它们是您的视图。您应该从模型中“获取数据”。

答案越长:

确定如何配置segue取决于您的调用方式:

如果您在代码中调用它(使用performSegueWithIdentifier:sender),则在方法调用中将字符串作为“发件人”传递。

如果你在故事板中设置了segue,那么你应该为每种可能性使用不同的segue,并检查segue标识符以确定你应该传递哪个字符串。

答案 1 :(得分:0)

我找到了我正在寻找的答案。我现在在两个UIView控制器之间有一个segue链接,segue identifier称为@“seg”。对于名为Radio Bean的地方,当按下“Radio Bean”单元格时,我使用以下内容:

if ([cell.textLabel.text isEqualToString: @"Radio Bean"])
{
     self.stringToDisplay = @"Radio Bean";
     [self performSegueWithIdentifier:@"seg" sender:self];
}

然后,在prepareForSegue中,我不指定segue identifier,而是使用以下内容:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   SegViewController *seg = segue.destinationViewController;
   seg.delegate = (id)self;

   if ([self.stringToDisplay isEqualToString: @"Radio Bean"])
   {
       seg.stringToDisplay = @"Radio Bean";
   }
}

这成功地将“Radio Bean”传递给下一个UIViewcontroller,并且我可以使用仅一个segue链接包含多个位置选项,因此,不需要多个链接。