Как сдвинуть вид с панели навигации с помощью 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 я написал небольшую процедуру, описывающую, как это сделать:
- Создайте контроллер навигации и установите его в качестве корневого контроллера представления окна, затем добавьте первый контроллер представления в контроллер навигации;
- Добавьте элемент кнопки панели к элементу навигации контроллера представления таким образом, чтобы вы могли изменить представление. У этого элемента навигации должно быть действие, которое выдвигает другой контроллер представления.