1

在这种情况下,我将下面的值分配给stringToDisplay并希望将它们发送到SegViewController,它也保留stringToDisplay。我需要在cell.textLabel.text这里使用isEqualToString: @"Fire House Gallery吗?我会用indexPath还是UITableViewCell在这里?

- (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";
  }
}

谢谢你,格雷格

4

2 回答 2

1

简短的回答:

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

更长的答案:

确定如何配置你的 segue 取决于你如何调用它:

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

如果您在情节提要中设置了转场,那么您应该为每种可能性使用不同的转场,并检查转场标识符以确定您应该传递哪个字符串。

于 2013-05-05T02:10:43.920 回答
0

我找到了我正在寻找的答案。我现在segue在两个 UIViewcontrollers 之间有一个链接,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 链接包含多个位置选项,因此不需要多个链接。

于 2013-05-06T22:22:42.597 回答