Как установить Superview со стороны делегата?
У меня есть странный шаблон дизайна для одного из моих апов, где у меня есть панель инструментов, которая действует как панель вкладок. По сути, я добавляю эту панель инструментов ко всем моим контроллерам представления, а сама панель инструментов содержит указатели на 3 различных контроллера навигации в моем приложении. Когда нажата одна из кнопок панели инструментов, она сможет удалить контроллер навигации, который в данный момент находится в окне, и добавить тот, который выбрал пользователь. Моя проблема в том, что я не уверен, как добавить новый navcontroller в суперпредставление. Могу ли я создать экземпляр объекта делегата приложения и добавить его к этому? Или мне нужно отправить указатель от моего делегата приложения на панель инструментов в виде переменной класса? Любая помощь будет оценена.
1 ответ
Мне кажется, что лучший способ сделать это - управлять своим UINavigationController
переключение в вашем приложении делегата. Вы также можете позаботиться обо всем, что вам нужно сделать во время этого процесса. Если есть конечное число UINavigationController
Если меня отключат, у меня может быть несколько способов позаботиться об этом:
Файл делегата приложения.h:
@property (nonatomic, retain) UINavigationController *currentNavController;
Файл делегата приложения.m:
@synthesize currentNavController = _currentNavController;
- (void)loadNavControllerOne
{
self.currentNavController = ...; // Set up your new controller
self.window.rootViewController = self.currentNavController;
}
- (void)loadNavControllerTwo
{
// Similar to -(void)loadNavControllerOne
}
Сокращенный, но вы поняли идею. Это изменится, если вам нужно разделить состояние между этими контроллерами. Вы?
РЕДАКТИРОВАТЬ: Чтобы получить доступ к делегату приложения, позвоните [[UIApplication sharedApplication] delegate]
,