2015-10-29 1 views
-1

Рассмотрим следующий сценарийПрикрепите два контроллера вид на один прототип ячейки

У меня есть клетка прототип, основанный на NSFetchedResultsController число table view cells появится в table view controller говорят ячейки A, B, C, D.

основанные на по содержанию tableviewcell мне нужно нажать SEGUE к различному view controllers, например, когда пользователь нажимает на cells А, В, С, D Е, F, G, H вид контроллеров соответственно.

Каков стандартный способ проектирования этого сценария?

+0

Любая конкретная причина для голосования? –

ответ

1

Как и в случае с самыми сложными сценариями, я не считаю, что для этого существует одно общепринятое стандартное решение. Один (я думаю) чистый подход к такому поведению может выглядеть так:

Настройте свои отрывки в Раскадке как manual между контроллерами вида назначения и контроллером представления, который выступает в качестве делегата вашего представления таблицы, и дайте их соответствующие идентификаторы (например, «segueE», «segueF», «segueG», «segueH»). Затем, в контроллере представления, владеющем свой вид таблицы, создать метод, который инкапсулирует ваше соответствие между содержимым ячейки и видом назначения контроллером и реализовать метод didSelectRowAtIndexPath: делегата следующим образом:

// Returns "segueE", "segueF", "segueG" or "segueH" 
- (NSString *) segueIdentifierForIndexPath:(NSIndexPath *)indexPath { 
    // your mapping logic 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString *segueIdentifier = [self segueIdentifierForIndexPath: indexPath]; 
    [self performSegueWithIdentifier:segueIdentifier sender:self]; 
} 

Что именно происходит в segueIdentifierForIndexPath: зависит от природы данных, которые вы показываете в представлении таблицы, конечно.

+0

благодарим вас за быстрый ответ, я реализую вышеупомянутый подход и доберусь до вас. –

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