Ios 如何根据表格视图单元格的详细信息文本标签将segue设置为与表格视图控制器不同的视图控制器?
我刚刚开始学习objective-c和编程,我真的被困在这个问题上了。我正在使用情节串连板创建一个应用程序,它可以保存不同类型游戏的分数。我有一个主视图控制器,它是一个表视图,它有带有细节标签的原型单元。有一个Ios 如何根据表格视图单元格的详细信息文本标签将segue设置为与表格视图控制器不同的视图控制器?,ios,objective-c,xcode,Ios,Objective C,Xcode,我刚刚开始学习objective-c和编程,我真的被困在这个问题上了。我正在使用情节串连板创建一个应用程序,它可以保存不同类型游戏的分数。我有一个主视图控制器,它是一个表视图,它有带有细节标签的原型单元。有一个AddKeeperViewController,允许用户输入玩家姓名和游戏类型。然后,游戏类型将用作原型单元的详细信息标签 然后,我希望根据细节文本标签的不同,将每个单元格推送到不同的视图控制器。目前我只有2种游戏类型,我知道我需要在tableViewDidSelectRowatineXp
AddKeeperViewController
,允许用户输入玩家姓名和游戏类型。然后,游戏类型将用作原型单元的详细信息标签
然后,我希望根据细节文本标签的不同,将每个单元格推送到不同的视图控制器。目前我只有2种游戏类型,我知道我需要在tableViewDidSelectRowatineXpath
中设置逻辑,以选择要使用的序列。我从视图控制器(而不是单元格)设置分段,每个分段都有一个唯一的标识符。我只是不知道如何设置我的if语句来使用gameType
作为选择哪个segue的决定因素
以下是我的MasterViewController.m
文件中的一些代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"scoreKeeperCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
scoreKeeper *keeperAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
[[cell textLabel]setText:keeperAtIndex.name];
[[cell detailTextLabel] setText:keeperAtIndex.gameType];
return cell;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if(cell.detailTextLabel) {
//statement
}
if ([[segue identifier] isEqualToString:@"ShowKeeperDetails"]) {
MADDetailViewController *detailViewController = [segue destinationViewController];
detailViewController.keeper = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
}
}
看来你走对了方向。然而,我认为你等待的时间有点太长了,不能选择哪个阶段。也许这样的事情适合你:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell.detailTextLabel.text isEqualToString:@"TEXT"])
{
[self performSegueWithIdentifier:@"segueTypeOne" sender:nil];
}
else
{
[self performSegueWithIdentifier:@"segueTypeTwo" sender:nil];
}
}
您也可以创建不同单元的原型,每个原型连接到不同的序列,从而产生不同的视图,然后使用正确的原型在
dequeueReusableCellWithIdentifier
中获取单元,谢谢您的回答!我不知道它是否会起作用,因为目前的赛格根本不起作用。你知道我是否还需要prepareForSegue方法吗?我试着让它保持原来的样子,但第二段也有一个else语句,但没有用。没关系,是的,你的建议奏效了!我只是因为在didSelectRowAtIndexPath上没有注意到一个打字错误而遇到麻烦。谢谢,谢谢!!