Передача объекта из кнопки раскрытия подробностей segue

Как передать объект из раскрывающегося списка деталей в контроллер подробного представления? Есть ли какие-либо рекомендации или быстрые исправления для этого? В идеале я хочу создать такой метод:

[self performSegueWithIdentifier:@"showDetail" sender:self passObject:object]; 

Причина в том, что «готовность к segue», кажется, вызвана только, когда я нажимаю ячейку перед индикатором раскрытия детали. Как создать метод, подобный приведенному выше, для создания эффектов подготовки ниже?

 if ([[segue identifier] isEqualToString:@"showDetail"]) { NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; id object = [_objects objectAtIndex:indexPath.row]; [[segue destinationViewController] setDetailItem:object]; } 

Я уже пытался создать подкласс UIStoryboardSegue, как это, но столкнулся с двумя проблемами.

 @implementation masterToDetail -(void)performSegueWithIdentifier:(NSString*)identifier sender:(id)sender passObject:(id)object{ [self.destinationViewController setDetailItem:object]; [self performSegueWithIdentifier:identifier sender:sender]; } -(void)performSegueWithIdentifier:(NSString*)identifier sender:(id)sender{ //What code should go here? Issue one } -(void)perform{ //Second issue, the compiler will crash and say I need to override perform. } 

Я исправил проблему, полностью отделив подкласс идеи segue. Я удалил пользовательский segue и сделал push segue ( от tableviewcontrollre ) до моего контроллера подробного представления. Затем я создал переменную экземпляра NSIndexPath* _ipath; и мой код выглядит следующим образом:

 - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{ _ipth = indexPath; [self performSegueWithIdentifier:@"showDetail" sender:self]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ NSLog(@"prepping"); if ([[segue identifier] isEqualToString:@"showDetail"]) { NSLog(@"in if"); id object = [_objects objectAtIndex:_ipth.row]; [[segue destinationViewController] setDetailItem:object]; } } 

Это позволяет подготовиться к segue, так как это работает для правильной ячейки.

  1. открытая раскадровка

  2. выберите Master view Controller – Мастер

  3. выберите Segue из UITableViewCell для подробного просмотра контроллера – Detail

  4. открытый инспектор атрибутов

  5. идентификатор -> masterToDetail write

Вы можете просто щелкнуть правой кнопкой мыши на ячейке просмотра таблицы, а затем ctrl-drag из аксессуара.

  • Swift - динамический размер UITableViewCell, основанный на соотношении сторон изображения
  • iOS 7 UITableView didSelectRowAtIndexPath pushViewController программно, проблема с анимацией
  • Как изменить порядок объектов в массиве fetchresultcontroller после переупорядочения ячеек
  • Как получить номер строки UITableView для UISwitch?
  • UIButton не отвечает на событие click в UITableViewCell
  • IOS swift Как я могу получить текст меток внутри TableView на метке
  • UITableView неправильно обрабатывает contentOffset при прокрутке / подкачке
  • Метка переменной длины, высота строк таблицы и автоматическая компоновка
  • UILabel с объяснением текста
  • Тип «ProfilesTableViewController» не соответствует протоколу «UITableViewDataSource» в семенах Xcode 6 GM
  • iOS - Липкие заголовки разделов в сгруппированном UITableView с пользовательскими ячейками
  • Давайте будем гением компьютера.