表格查看多个分段

时间:2013-08-04 14:01:04

标签: uitableview pushviewcontroller

嗨我在故事板中使用表格视图创建一个应用程序,到目前为止,我能够填充表格,我将它设置为制作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]];
   }
}

3 个答案:

答案 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 +从原型单元格拖动到不同的目标视图控制器并分配不同的标识符。

假设您有一个原型单元和四个不同的目标视图控制器。请按照以下步骤进行操作

  1. ctrl +从原型单元格拖动到第一个目标视图控制器并在属性检查器中分配标识符说“cell2view1”
  2. ctrl +从原型单元格拖动到第二个目标视图控制器并在属性检查器中分配标识符说“cell2view2”
  3. ctrl +从原型单元格拖动到第三个目标视图控制器并在属性检查器中分配标识符说“cell2view3”
  4. ctrl +从原型单元格拖动到第四个目标视图控制器并在属性检查器中分配标识符说“cell2view4”
  5. 您的[segue destinationViewcontroller]将根据您的故事板自动设置。

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
     {
    
        if ([[segue identifier] isEqualToString:@"cell2view1"]) 
        {
            //Do things
        }
        else if ([[segue identifier] isEqualToString:@"cell2view2"])
        {
    
        }
     }