2015-05-21 5 views
1

У меня есть UICollectionView, который динамически загружает ячейки, но я хочу открыть различный UIViewController, когда я нажимаю ячейки. , например: -cell1 открыть UIViewController1 -cell2 открыть UIViewController2 -cell3 открыть UIViewController3UICollectionView для каждого UICollectionViewCell

Кто-нибудь знает, если это возможно, чтобы сделать это?

ответ

3

Вам нужно создать перетекает из контроллера представления который хранит представление коллекции (не ячейку) контроллерам вида назначения, например:

UICollectionViewController -> UIViewController1 
UICollectionViewController -> UIViewController2 
//...etc 

Не забудьте добавить идентификатор к каждому из сегментов.

И в коде переопределения UICollectionViewDelegate метод

collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 

внутри этой проверки метода, который прослушивается клеток (indexPath), и если он был cell1 вызов переход с правого идентификатора:

performSegueWithIdentifier("goToVC1Identifier", sender: nil) 
2

ли это программно, что-то подобное в UICollectionViewDelegate методе didSelectItemAtIndexPath

UIViewController *c = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%li",(long)indexPath.row]]; 

[self.navigationController pushViewController:c animated:YES]; 
//or however you a moving to next viewcontroller 

Убедившись ваши viewcontrollers имеют правильно названные идентификаторы соответствуют клеткам

1

Вы будете необходимо выполнить segue вручную в - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath делегата коллекции.

Смежные вопросы