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];

Исходим следующий скриншот:http://s15.postimg.org/pli8zk53f/Schermafbeelding_2013_05_22_om_15_00_43.png

Как вы можете видеть, меню находится "в контроллере вида", но оно должно быть снаружи, поэтому панель навигации должна скользить вправо вместе с серединой 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" в стек. И когда они выйдут из системы, снова отключите их.

Другие вопросы по тегам