【问题标题】:Table View Multiple Segues表视图多个 Segue
【发布时间】:2013-08-04 14:01:03
【问题描述】:

嗨,我在情节提要中使用表格视图创建了一个应用程序,到目前为止,我能够填充表格,我将其设置为创建 4 个单元格并从每个单元格推送到同一个视图控制器,但我希望能够做到要做的是每个单元格都将我带到一个新的视图控制器

这就是我目前所拥有的,如果你能指出我正确的方向如何能够做到这一点,那就太好了

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

【问题讨论】:

    标签: uitableview pushviewcontroller


    【解决方案1】:

    您可以在故事板或代码中执行此操作:

    在故事板中

    您可以从一个单元格绘制一个转场到目标视图控制器,并在属性检查器中为该转场指定一个唯一标识符。您可以通过拥有多个单元原型使用它来转接多个目的地,每个原型都有自己的转接。

    在代码中

    要在代码中执行此操作,您需要从视图控制器(而不是单元格)向每个目的地绘制一个 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
        }
    }
    

    【讨论】:

      【解决方案2】:

      您还必须单击 TableViewController > TableView > Attributes Inspector> Prototype Cells = numberOfSeguqes 您要制作。

      【讨论】:

        【解决方案3】:

        只需从原型单元格按 ctrl+拖动到不同的目标视图控制器并分配不同的标识符。

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

        1. ctrl+ 从原型单元拖动到第一个目标视图控制器并在属性检查器中分配一个标识符,例如“cell2view1”
        2. ctrl+ 从原型单元拖动到第二个目标视图控制器并在属性检查器中分配一个标识符,例如“cell2view2”
        3. ctrl+ 从原型单元拖动到第三个目标视图控制器,并在属性检查器中分配一个标识符,例如“cell2view3”
        4. ctrl+ 从原型单元拖动到第四个目标视图控制器,并在属性检查器中分配一个标识符,例如“cell2view4”

        您的 [segue destinationViewcontroller] 将根据您的情节提要自动设置。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-29
          • 1970-01-01
          • 1970-01-01
          • 2012-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-25
          相关资源
          最近更新 更多