2014-12-17 2 views
0

Я использую Collection View в MainStoryboard.storyboard, показывая сетку изображений. Я хочу, чтобы перейти от представления коллекции в виде таблицы при выборе пункта, то есть на следующий метод:tableView in collectionView IOS

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

Как я могу загрузить Tableview в методе CollectionView после выбора?

Мой подход:

UIViewController *vc = [[UIStoryboard storyboardWithName:@"SubCategories" bundle:nil] instantiateViewControllerWithIdentifier:@"SubCategories"]; 
[self.view addSubview:vc.view ]; 
+0

Вы должны выполнить segue для своей новой сцены, а не добавлять представление в текущий вид – Paulw11

+0

, пожалуйста, объясните мне подробно, чтобы выполнить это в методе collectionview? @ Paulw11 – developer

+0

Поиск, как использовать 'performSegueWithIdentifier' – Paulw11

ответ

0

Вы должны сделать новый ViewController в раскадровку, которая имеет TableView в нем. Затем добавьте segue из первого ViewController (из самого VC, а не из CollectionView) в новый ViewController. Убедитесь, что вы установили идентификатор segue для этого сегмента.

Тогда в вашем методе didSelectItemAtIndexPath, вызовите

[self performSegueWithIdentifier:@"YourIdentifier" sender:self]; 

Вы можете реализовать метод prepareForSegue в первом VC передать данные о том, что был выбран для вашего второго ВК.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    // Make sure your are about to perform the same segue 
    if ([[segue identifier] isEqualToString:@"YourIdentifier"]) { 
     // Get reference to the destination view controller 
     SecondViewController *vc = [segue destinationViewController]; 
     // Pass any objects to the view controller here, like... 
     [vc setMyObjectHere:object]; 
    } 
} 

Обратите внимание, никогда не называй prepareForSegue, IOS называет это для вас, когда переход должно произойти.

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