Контекст: У меня есть два VC, A и B. VC A содержит несколько кнопок и несколько меток. При нажатии кнопки в VC A на дисплее появится VC B/C/и т. Д. Теперь, когда закончите с VC A/B/C и так далее, segue разматывается так, что появляется VC A. Для большей части VC B/C/D и так далее я использую метод разматывания, который я запускаю через кнопку в этом VC (ctrl + drag to «exit»). Это отлично работает, потому что по возвращении в VC A, следующее действие вызывается автоматически:Unwind Segue Programmatically - Новый поворот
- (IBAction)returned:(UIStoryboardSegue *)segue {
// Here I do some stuff
}
Проблема: Теперь, в одной из вторичных VCs (например, D), то немного особенным. В этом VC я генерирую несколько сотен кнопок через цикл программно, затем определяю, какая кнопка нажата, и, наконец, откат назад до VC A (без конкретной кнопки, любая из кнопок вызовет размотку). Я знаю, что могу это сделать, например, с помощью этого
[self dismissViewControllerAnimated: YES completion: nil]
, но это не приводит к срабатыванию выше действия при возврате к VC A, или с помощью этого
[self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self]
, но это создаст новый экземпляр VC A, которого я не хочу (поскольку метки в экземпляре VC A уже содержат некоторую информацию).
Итак, я хочу, чтобы иметь возможность вернуться к тому же экземпляру VC A, который сгенерировал VC D, а также вызвать действие «возвращено», перечисленное выше. Таким образом, я хочу добиться такого же эффекта, как при использовании кнопки, связанной с иконкой «Выход», но я хочу сделать это программно «внутри кода», когда нажата много кнопок в VC D.
Любые мысли?
+1 Совершенно верно. Единственный «трюк» - это способ создания разворота в вашем раскадровке (вам нужно перетащить мышью из значка контроллера в панели под сценой на значок выхода), но этот метод отлично работает. – Rob
@Scott - Возможно, это должно произойти, но я получаю новый экземпляр VC A, и когда я нажимаю кнопку «Готово» на этом экземпляре, VC A, когда я его оставляю, отображается ... –
@Rob - Я не уверен, что я следую за вами, я сделал ручную переделку с помощью ctrl-клика по иконке vc в VC D в VC A. Что вы подразумеваете под «значком выхода», и ссылаетесь ли вы на нее в VC A или D ? –