2012-02-09 5 views
17

Для навигации iOS 5 между контроллерами просмотра класс UIViewController предоставляет селектор [self performSegueWithIdentifier:@"MySegue" sender:sender]. Предположительно, под капотом реализация раскадровки знает список идентификаторов segue, исходящих из любого контроллера вида, то есть [@"MySegue", @"MySegue2"]. Есть ли способ получить доступ к этому списку программно, чтобы получить идентификаторы, которые могут быть переданы для выполнения SegueWithIdentifier?Программно перечислять исходящие Segues для UIViewController

ответ

12

Это недокументированная поведение, но

NSArray *segueTemplates = [self valueForKey:@"storyboardSegueTemplates"] ; 

должен возвращать массив, который включает в себя все возможные значения SEGUE, которые могут быть переданы в performSegueWithIdentifier.

+0

cool - мне нужно, если только для кода Dummy/только код отладки –

+0

Кажется проверенным в другом месте: https://gist.github.com/away4m/5bb5d773cb93aa9e60a1 - Спасибо, Рог! – btown

10

Нет публичного API для перечисления segues в раскадровке.

+1

Сад. Таким образом, мой единственный вариант - поймать исключение, если оно выбрасывает ... Это не похоже на Apple. –

+0

Я хотел бы переоценить это с помощью ios9 [хотя моя надежда тонкая: D] –

-1

Хранить все segue, связанные с контроллером представления в массиве, а затем получить доступ к этому массиву в контроллере представления.