先写一个方法, 强制增加一个navigation的属性. 这样self就可以调出来navigation了
- (UINavigationController*)naviController {
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UINavigationController class]]) {
return (UINavigationController*)nextResponder;
}
}
return nil;
}
然后, 在cell的点击方法中调用这个属性, 并推出一个新的界面:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
myViewController *vc = [[myViewController alloc]init];
[[self naviController] presentViewController:vc animated:YES completion:nil];
}
原文:http://www.cnblogs.com/mafeng/p/5778041.html