大家好我是Obj c编程的初学者,我从tableviewcell创建了一个“self segue”(segue到同一个视图控制器)。现在我的问题是,我在prepareForSegue方法中设置了一些参数,但不知何故segue已经在调用此方法之前发生(我甚至没有调用“performSeguewithIdentifier”)。我知道这可能是因为segue与细胞相关联。但我没有找到其他方法来创造一个“自我”的
请帮助。我正在使用xcode6 ..
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
_selctdObj = [avObjArray objectAtIndex:indexPath.row];
if([_selctdObj isContainer])
{
[self performSegueWithIdentifier:@"isContainerSegue" sender:self];
}
else
{
[self performSegueWithIdentifier:@"isItemSegue" sender:self];
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"isContainerSegue"]) {
// Get destination view
serverBrowseVC *sbvc = [segue destinationViewController];
[sbvc setServerSelected:_serverSelected];
[sbvc setBrowseObjID:_selctdObj];
}
}
现在总是“isContainerSegue”被执行,即使对象不是容器。我也试过评论
//[self performSegueWithIdentifier:@"isContainerSegue" sender:self];
但每次“isContainerSegue”都会被执行..
答案 0 :(得分:0)
你说你没有调用performSegueWithIdentifier,但是你是。如果你已从细胞中连接了segue,那么你就不应该这样做。你也不应该实现didSelectRowAtIndexPath,只需要prepareForSegue。您可以从prepareForSegue:sender:的sender参数(发件人将是单元格)获取indexPath。如果您遇到“if [_selctdObj isContainer]”子句的问题,则需要发布isContainer的内容。