Итак, как и многие люди, с которыми я сталкиваюсь с UITabBarController, он не предназначен для подклассов , а должен быть корневым контроллером вида особенностей.
Мне нужно управлять поведением всех подпредставлений и естественным способом сделать это, кажется, иметь контроллер корневого представления, которому они сообщают и который передает сообщения между ними. В моей текущей установке у меня есть PBModalRootViewController, который создает экземпляр UITabBarController и устанавливает его как подпредставление. PBModalRootViewController управляет подпредставлениями и отвечает за отклонение модального представления.
вроде так http://p.twimg.com/Abu0iWDCMAAwhuy.jpg:large
Это довольно чистое решение , но оно приводит к изворотливому поведению UITabBarController, которое, как я полагаю, не любит быть подпредставлением. Это то, что мне нужно исправить перед отправкой, и у меня есть несколько решений:
Подкласс UITabBarController и устранение возможных последствий позже.
Повторно настройте PBModalRootViewController, чтобы он был PBModalSupervisor. т.е. сделать его классом, который запускает tabBarController и подпредставления, возвращает красивый сконфигурированный вид и затем следит за всеми ними для меня.
Это может привести к большой неразберихе и появлению дополнительных указателей, которые могут быть болезненными для управления.
Просто измените архитектуру оригинальным способом, который был бы великолепен, любые идеи ...
Все то, о чем я не думал ...
Я все делаю не так, и меня надо шлепнуть форелью!
Используйте NSNotificationCentre, возможно, это немного запутано с сохранением, отклонением и т. Д., Но все равно нужно где-то управлять логикой отклонения.
Категория на UITabBarController? Полагаю, это было бы способом обходить подклассы.