Хобрук: Ваш путь к мастерству в программировании

Xcode Unwind Segues

У меня проблемы с передачей данных между 2 viewControllers. Они связаны с переходом, и я пытаюсь связать данные, сгенерированные во 2-м viewController, и использовать их в 1-м viewController.

Как это работает, пользователь начинает с 1-го viewController и переходит ко 2-му viewController, который содержит несколько настроек для выбора. Когда они возвращаются к 1-му viewController, я хочу, чтобы данные были переданы. С prepareForSegue очень просто, но что делать? Есть ли такой метод, как prepareForSegue, который работает в обратном порядке (то есть возвращается к основному viewController)? Я пытался использовать unwindSegues, но не уверен, что это правильный метод. Может ли кто-нибудь сказать мне правильный способ настройки этого? Или есть другой метод, который я должен использовать? Любая помощь относительно того, что я должен сделать, будет принята с благодарностью.

21.07.2014

Ответы:


1

Лучший способ сделать это — использовать файл delegate. См. статьи здесь и < href="http://www.tutorialspoint.com/ios/ios_delegates.htm" rel="nofollow noreferrer">здесь, чтобы узнать о делегировании. Этот ответ и этот также может помочь.

21.07.2014

2

Вам не нужно делать ничего подобного. Метод раскрутки выглядит примерно так:

- (IBAction)unwindToPackerView:(UIStoryboardSegue*)sender У вас есть доступ к переходу, и вы можете ссылаться на исходный контроллер представления (2 контроллера представления)

- (IBAction)unwindToPackerView:(UIStoryboardSegue*)sender {

    // you can check is this right segue if you have more than one:
    if ([sender.identifier isEqualToString:@"SegueIdentifier"]) {
         CustomViewController *vc2 = sender.sourceViewController;
         // get the data from source view controller
    }
}

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

// Расширенный

Если вы хотите вызвать раскрутку перехода после нажатия кнопки (кнопки панели и т. д.), просто управляйте перетаскиванием с кнопки на значок раскрутки (значок выхода) в раскадровке.

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

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
21.07.2014
  • Хорошо, спасибо! Как мне вызвать этот метод, потому что это происходит, когда пользователь проводит пальцем... я использую мастер-деталь. 21.07.2014
  • @ThomasWadney См. расширенный ответ. 21.07.2014
  • Новые материалы

    Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
    LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

    Структуры данных в C ++ - Часть 1
    Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

    Как я опубликовал свое первое приложение в App Store в 13 лет
    Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

    Что в лицо
    Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..

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

    Создание дизайна обуви с помощью машинного обучения
    Обувь. Что подождать? Я думал, что речь пойдет о машинном обучении! Ну это так. Если бы вы пошли на Amazon, сколько обуви вы бы нашли? Наверное, много, не так ли? Но много ли в них..

    GraalVM в 2022 году: итоги года
    2022 год был очень продуктивным для проекта и сообщества GraalVM. Вместе мы разработали множество новых функций, выпустили GraalVM для последних версий Java и новых платформ и увидели несколько..