При щелчке правой кнопкой мыши по значку "Выход" появляется пустое окно. Не удается Ctrl-перетащить соединение с любыми элементами IB или соответствующими исходными файлами. Документы не дают любви. Не отображается в файлах nib, только раскадровки. Мое предположение заключается в том, что оно является следствием segues, но я не вижу никаких новых методов для его поддержки. Кто-нибудь?
Кто-нибудь знает, что новый значок выхода используется для редактирования раскадровки с использованием Xcode 4.5?
Ответ 1
В видео WWDC много информации "Сессия 407 - Принятие раскадровки в вашем приложении".
Скажем, у вас есть два контроллера вида, связанных с помощью segue. Выполните следующее действие выхода на первом контроллере представления:
- (IBAction)done:(UIStoryboardSegue *)segue {
NSLog(@"Popping back to this view controller!");
// reset UI elements etc here
}
Затем, на сцену Storyboard для второго контроллера представлений, перетащите Ctrl из элемента пользовательского интерфейса, например кнопки, в значок выхода в нижней части этого контроллера представления. В качестве опции появится действие done:
, добавленное в код первого контроллера. Теперь, активируя кнопку, которую вы перетащили Ctrl на значок выхода, появится на первый контроллер представления и сохранит свое исходное состояние (т.е. элементы пользовательского интерфейса, такие как ввод текста, предположительно, все еще нетронутыми).
Ответ 2
Мне пришлось нелегко следовать принятому ответу, поэтому более подробно.
Учитывая фотографию ниже на контроллере C просмотра, вы можете "вернуться" к любому контроллеру вида по пути segue.
ViewController A вы можете написать:
- (IBAction)done:(UIStoryboardSegue *)segue {
// Optional place to read data from closing controller
}
ViewController B вы можете написать:
- (IBAction)back:(UIStoryboardSegue *)segue {
// Optional place to read data from closing controller
}
ViewController C вы управляете перетаскиванием с "назад" на зеленый вариант выхода и выберите назад: ViewController C вы управляете перетаскиванием из "сделанной" кнопки к опции зеленого выхода и выберите done:
Примечание. Несмотря на то, что методы находятся на других контроллерах представлений, они отображаются для выхода ViewController C. Управление перетаскиванием и выбор метода определяет, к какому ViewController нужно расслабиться.
Ответ 3
В дополнение к Eric ответьте здесь, как это работает с swift:
Функция, которую вы добавляете к контроллеру назначения, выглядит следующим образом:
@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
NSLog("I'm back from other controller!")
}