Передача объекта из кнопки раскрытия подробностей 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. } 

3 Solutions collect form web for “Передача объекта из кнопки раскрытия подробностей segue”

Я исправил проблему, полностью отделив подкласс идеи 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 из аксессуара.

  • Как ограничить текст UILabel с помощью объектного C?
  • UISearchBar в верхней части UITableView, который может скрываться, но оставаться рядом с UINavigationBar
  • Динамический UITableViewCell не изменяет размер в соответствии с содержимым
  • uilongpressgesturerecognizer падает, даже если не реализован
  • Дальнейшее разъяснение «Как реализовать UISearchController с целью c»
  • «неожиданно найдено нуль» для поиска в UITableView
  • UITextField внутри UITableViewCell - метод предотвращения сброса текста
  • UITableView как приложение для Facebook
  • Идентификатор повторного использования идентификатора ячейки в игровых зонах XCode
  • Swift - динамический размер UITableViewCell, основанный на соотношении сторон изображения
  • Как изменить цвет заголовка UITableViewRowAction?
  • Interesting Posts

    Карусель в контроллере возится с размерами в моем представлении коллекции

    Проблемы с вращением TabBarController

    Как открыть библиотеку изображений iphone из класса делегата приложения

    Вычисление точки 3D-мира из точки 2D-изображения с использованием OpenCV

    Что означает $ 0 и $ 1 в Swift Closures?

    Как уменьшить размер ipa моего приложения

    Использовать AVSpeechSynthesizer в фоновом режиме без остановки музыкального приложения

    Расширение каталога вызовов – ошибка включения расширения. Не удалось запросить данные

    Цель c – Показывать буферизацию при воспроизведении звука с удаленного сервера

    Изменение версии в iTunes подключитесь до того, как она выйдет в прямом эфире

    Причины отказа от приложения iPhone от Apple Store

    Является совместимым с iOS SDK 6.0 для разработки приложения для iOS 5.1

    Как отклонить текущий ViewController и перейти к другому представлению в Swift

    Отклонить уже поставленную UILocalNotification?

    запуск приложения с пользовательской клавиатуры iOS8

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.