在这种情况下,我将以下值分配给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";
}
}
谢谢你, 格雷格
答案 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链接包含多个位置选项,因此,不需要多个链接。