我有一个 UICollectionView 由许多单元格组成。在确定这是适当的操作后,我希望能够点击其中一个单元格并让我的 Storyboard 转到另一个视图控制器。
我已经在我的 Storyboard 中创建了我的辅助视图控制器以及 segue。在我的 UICollectionView 子类中,我实现了以下...
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
return NO; // So that I can determine whether or not to perform the segue based on app logic
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
// Selection logic here
[self performSegueWithIdentifier:@"showDetailView" sender:self];
}
在这个类中,我还实现了 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 以允许我在执行 segue 之前设置我的详细视图。它看起来像这样:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"HELLO, WORLD!!!");
}
一切似乎都井井有条,但我发现这prepareForSegue
从未被调用过。我试过记录,设置断点。没有迹象表明这个方法被调用过。我在这里想念什么?为什么不调用此方法?虽然它现在有一个简单的“Hello, World”语句,但我之前有我的详细视图所依赖的代码,它会导致异常,因为详细视图没有正确设置。
还有什么我在这里想念的吗?我现在不应该做的事情是什么?