为所选单元格准备segue If语句?

时间:2014-04-03 08:21:39

标签: ios

我有2个自定义单元格,如果选择了一个,我想通过准备segue传递数据。问题是我想在准备segue时传递不同的数据,具体取决于单元格的自定义类。

有人知道我怎么能这样做吗?

这里有一些伪代码,可以更好地解释我尝试做的事情。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

        GFPostShowViewController *destViewController = segue.destinationViewController;

        if(cell.Class == CustomCellClass1){
            CustomCellClass1 *cell = sender;
        } else {
           CustomCellClass2 *cell = sender;
        }

//perform actions

    }

}

2 个答案:

答案 0 :(得分:1)

如果您有两个自定义单元格,则可以在Storyboard上为每个单元格拖动不同的Segue。每个segue都有不同的segueID。然后:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([segue.identifier isEqualToString:@"firstSegue"]) {

         //...prepare destination view controller
        }
     else if ([segue.identifier isEqualToString:@"secondSegueSegue"]) {

        //...prepare destination view controller
        }


}

希望它有所帮助,

答案 1 :(得分:0)

我会做这样的事情:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    GFPostShowViewController *destViewController = segue.destinationViewController;

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[self.tableView indexPathForSelectedRow]];

    if ( [cell isKindOfClass:[CustomCellClass1 Class]] )
    {
        // cast cell to CustomCellClass1
    }
    else if ( [cell isKindOfClass:[CustomCellClass2 Class]] )
    {
        // cast cell to CustomCellClass2
    }
}

在视图中确实出现(当用户按下并导航回此控制器时),取消选择您的单元格:

- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}