iOS ViewDeck удалить общий заголовок
В настоящее время я работаю над проектом, который включает в себя ViewDeck от Inferis.
Я ищу, чтобы создать интерфейс меню в стиле Facebook. Однако мне не удается сохранить заголовок заголовка локальным, а не глобально для deckController.
Итак, в основном, у меня есть rootviewcontroller, который помещает контроллер представления входа в стек. Ничего фантастического. но когда я вошел в систему, он должен поместить IIViewDeckController в стек, но без всех панелей навигации
Как это кодирует:
neighbourhoodViewController *nextViewController = [[neighbourhoodViewController alloc] initWithNibName:@"neighbourhoodViewController" bundle:nil];
menuViewController *leftViewController = [[menuViewController alloc] initWithNibName:@"menuViewController" bundle:nil];
IIViewDeckController* deckController = [[IIViewDeckController alloc] nitWithCenterViewController:nextViewController leftViewController:leftViewController];
deckController.leftSize = 100.0f;
[self.navigationController pushViewController:deckController animated:YES];
Исходим следующий скриншот:
Как вы можете видеть, меню находится "в контроллере вида", но оно должно быть снаружи, поэтому панель навигации должна скользить вправо вместе с серединой TableViewController
Я пытался скрыть все панели навигации, но, похоже, ничего не работает. Также я попытался запустить его из приложения делегата, так как это в примере. Оно работает. Тем не менее, мне нужно запустить его из контроллера вида входа в систему.
Thnx
1 ответ
Вы должны немного изменить свою структуру.
Сделайте IIViewDeckController rootViewController вашего приложения и установите его centreController в качестве вашего UINavigationController.
Сделайте так, чтобы ваш LoginViewController был topViewController вашего UINavigationController в начале, таким образом показывая представление Login для начала. Если вы не хотите видеть панель навигации при входе в систему, добавьте это в свой LoginViewController:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
Чтобы предотвратить любые действия ViewDeck при входе в систему, сделайте это в делегате вашего ViewDeck:
- (BOOL)viewDeckController:(IIViewDeckController*)viewDeckController shouldOpenViewSide:(IIViewDeckSide)viewDeckSide {
UINavigationController *navController = (UINavigationController*)self.centerController;
if([[navController viewControllers] count] < 2) {
return NO;
}
return YES;
}
Очевидно, что тогда, когда пользователь успешно вошел в систему, вам просто нужно поместить ваш "liebourhoodViewController" в стек. И когда они выйдут из системы, снова отключите их.