iOS: уникальная идентификация ViewControllers из раскадровки - PullRequest
5 голосов
/ 28 декабря 2011

У меня есть пользовательский ViewController, который предназначен для многократного использования, и произвольное количество экземпляров будет объединено в цепочку NavigationController в Storyboard, и все они будут использовать ту же модель, что и делегат.

ViewController необходимо указать модели, к какому экземпляру они относятся.В настоящее время у них есть свойство int, которое они получают из этой статьи, но оно не кажется слишком идиоматичным и не позволяет использовать несколько экземпляров на экране (для iPad).Я полагаю, что должен быть более чистый способ сделать это, так кто-нибудь знает, что это такое?Спасибо.

РЕЗУЛЬТАТ: self.view.tag

Ответы [ 3 ]

8 голосов
/ 29 декабря 2011

UIView UIViewController имеет свойство tag, которое вы можете установить из любого места. Вы также можете просто определить тип контроллера, используя [self class]. Или просто используйте ячейку памяти, ссылаясь непосредственно на контроллер.

Обновление Вы можете просто реализовать уникальный идентификатор для UIViewController, используя категорию.

1 голос
/ 29 декабря 2011

Я полагаю, что самым «чистым» способом с точки зрения архитектуры проектирования может быть массив ViewControllers.(Это может быть выполнено в делегате приложения.) Однако есть некоторые аспекты памяти - на iPhone вы, вероятно, захотите создать и уничтожить контроллеры представления по мере необходимости.Массив может содержать identifier и, возможно, некоторую другую информацию, связанную с моделью, чтобы при необходимости воссоздавать контроллеры.

0 голосов
/ 29 мая 2013

Жаль, что нет свойства storyboardIdentifier UIViewController. Их можно создать с помощью этого идентификатора, но было бы полезно, если бы viewcontroller мог запросить его идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...