Как сдвинуть вид с панели навигации с помощью ViewDeck

Есть небольшая проблема с Viewdeck.

Я хочу нажать свое навигационное представление с навигационной панелью. Я сейчас делаю (код ниже), но он нажимает без панели навигации.

    [self.viewDeckController closeLeftViewBouncing:^(IIViewDeckController *controller)
     {  
    DataViewController *DataController = [[DataViewController
                                           alloc]  initWithNibName:@"DataViewController" bundle:nil];
    DataController.modalPresentationStyle = UIModalPresentationFormSheet;


    DataController.ID = @"hello";

     self.viewDeckController.centerController = DataController;
}];

Также попробовал:

        UIViewController *viewController = [[DataViewController alloc] init];
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
        navigationController.modalPresentationStyle = UIModalPresentationFormSheet;


            DataViewController *DataController = [[DataViewController
                                                   alloc]  initWithNibName:@"DataViewController" bundle:nil];
            DataController.modalPresentationStyle = UIModalPresentationFormSheet;


            DataController.ID = @"hello";

             self.viewDeckController.centerController = DataController;

2 ответа

Решение

Вы идете в правильном направлении со своим первым блоком кода, но затем вы не используете реальный UINavigationController. Я собираюсь предположить, что ваш класс UIViewController является DataViewController, поэтому следующее должно сделать это:

DataViewController *dataController = [[DataViewController alloc] initWithNibName:@"DataViewController" bundle:nil];
UINavigationController *dataNavigationController = [[UINavigationController alloc] initWithRootViewController:dataController];

Передайте ему любые данные, которые вы хотите (я вижу, вы устанавливаете для свойства ID значение @"hello" - я опущу это). Затем в вашем closeLeftViewBouncing просто установите:

[controller setCenterController:dataNavigationController];

Когда вы перемещаете контроллер представления в контроллер навигации, у него всегда есть панель навигации. Но вы не выдвигаете контроллер представления с помощью своего кода.
В своей тетради для объектива c я написал небольшую процедуру, описывающую, как это сделать:

  1. Создайте контроллер навигации и установите его в качестве корневого контроллера представления окна, затем добавьте первый контроллер представления в контроллер навигации;
  2. Добавьте элемент кнопки панели к элементу навигации контроллера представления таким образом, чтобы вы могли изменить представление. У этого элемента навигации должно быть действие, которое выдвигает другой контроллер представления.
Другие вопросы по тегам