我有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
}
}
答案 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];
}