Не удается получить доступ к методам источника данных UITableView, используя делегат UISegmentedControl - PullRequest
1 голос
/ 28 июля 2011

Я использую UISegmentedControl в моем viewController. Когда выбран один сегмент, я хочу, чтобы данные таблицы загружались из NSFetchedResultsController (уже настроен), а из другого сегмента я хочу, чтобы данные загружались из массива.

Я использую метод делегата сегмента здесь

- (void)segmentedControl:(SVSegmentedControl*)segmentedControl didSelectIndex:(NSUInteger)index

Проблема в том, что я не могу получить доступ к методам источника данных tableView с использованием делегата сегмента.

Например, было бы хорошо, если бы в методе didSelectRowAtIndexPath я мог сделать что-то вроде if (selectedSegment == 1), затем xxxxx.

Кто-нибудь знает, как я могу это сделать?

Я хочу перейти к другому представлению, когда в зависимости от сегмента выбрана строка.

1 Ответ

1 голос
/ 28 июля 2011

Предполагая, что вы синтезировали свой сегментированный элемент управления как свойство, вы, безусловно, можете получить к нему доступ из методов источника данных tableView.

Например, если ваш сегмент называется userSegment, вы просто сделаете

self.userSegment.selectedSegmentIndex

А затем действуйте соответственно. например if(self.userSegment.selectedSegmentIndex == 0) {...} else {...}. С этим индексом также можно работать разными способами. Ознакомьтесь с документацией. Один простой пример:

NSString *selectedTitle = [self.userSegment titleForSegmentAtIndex:self.userSegment.selectedSegmentIndex];

Это простой пример, но дело в том, что вы можете легко использовать состояние вашего сегмента для условного заполнения источника данных tableView.

Редактировать: См. Справочник классов UISegmentedControl для получения дополнительной информации о selectedSegmentIndex и других свойствах и методах, которые вы можете использовать.

...