嗨我在故事板中使用表格视图创建一个应用程序,到目前为止,我能够填充表格,我将它设置为制作4个单元格并从每个单元格推送到同一个视图控制器,但我希望能够do是每个单元格将我带到一个新的视图控制器
到目前为止,如果你可以指出我正确的方向,如何能够做到这一点,这就是我的目标
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowSimpleDetails"]) {
SimpleTutorialsViewController *detailViewController = [segue destinationViewController];
NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];
int row = [myIndexPath row];
detailViewController.simpleDetailModal = @[_simpleTitle[row], _simpleDescription[row], _simpleImages[row]];
}
}
答案 0 :(得分:4)
您可以在故事板或代码中执行此操作:
在故事板中
您可以从单元格到目标视图控制器绘制segue,并在属性检查器中为该segue指定唯一标识符。你可以通过拥有多个单元原型来使用它来转换到多个目的地,每个原型都有自己的segue。
代码
要在代码中执行此操作,您将从视图控制器(而不是单元格)中绘制一个segue到每个目标,并为每个segue提供唯一标识符。然后在didSelectRowAtIndexPath
中,您将根据所选索引路径决定所需的目的地,并执行segue,如
NSString *segueIdentifier = @"someIdentifier";//or whatever logic you need to determined the appropriate identifier
id sender = self;//or whatever object you want to be the sender
[self performSegueWithIdentifier:segueIdentifier sender:sender];
<强> prepareForSegue 强>
在prepareForSegue
中,每个可能的segue标识符都有一个条件块:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"oneSegueIdentifier"]) {
//preparation
} else if ([[segue identifier] isEqualToString:@"anotherSegueIdentifier"]) {
//other preparation
}
}
答案 1 :(得分:1)
您还必须单击TableViewController&gt; TableView&gt;属性检查器&gt;原型单元格=您想要制作的numberOfSeguq。
答案 2 :(得分:0)
只需执行ctrl +从原型单元格拖动到不同的目标视图控制器并分配不同的标识符。
假设您有一个原型单元和四个不同的目标视图控制器。请按照以下步骤进行操作
您的[segue destinationViewcontroller]将根据您的故事板自动设置。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"cell2view1"])
{
//Do things
}
else if ([[segue identifier] isEqualToString:@"cell2view2"])
{
}
}