Как правильно использовать метод «sendSubviewToBack»?

Я реализовал слайд-меню, но мне нужен эффект скольжения точно так же, как в facebook. Я наткнулся на следующий пост в stackoverflow:

боковое меню iphone facebook с использованием объектива c

В котором я хочу реализовать решение, предложенное greenisus (, проголосовавшее 15 раз ), но у меня возникли проблемы с его реализацией, такая же проблема была поднята Ботом в комментариях к его ответу. «@greenisus Я не понимаю, как ты переместил меню на задний план? Когда я это делаю, оно просто показывает черное боковое меню». на который не ответили.

Текст его ответа для справки::

Это очень просто. Во-первых, вам нужно создать контроллер представления, который находится под видимым. Вы можете отправить этот вид на задний план вот так:

[self.view sendSubviewToBack:menuViewController.view];

Затем вы помещаете кнопку меню в левую часть панели навигации и пишете обработчик вроде этого:

- (void)menuButtonPressed:(id)sender {
    CGRect destination = self.navigationController.view.frame;
    if (destination.origin.x > 0) {
        destination.origin.x = 0;
    } else {
        destination.origin.x += 254.5;
    }
    [UIView animateWithDuration:0.25 animations:^{
        self.navigationController.view.frame = destination;        
    } completion:^(BOOL finished) {
        self.view.userInteractionEnabled = !(destination.origin.x > 0);
    }];
}

Это общая идея. Возможно, вам придется изменить код, чтобы он отражал вашу иерархию представлений,и т. д.

Просто хочу знать, когда нам нужно использовать следующий метод, второй метод прост и отлично работает, но не показывает вид меню под ним.

[self.view sendSubviewToBack:menuViewController.view];

Ищете некоторые указатели или решение для правильного запуска приведенного выше кода.

8
задан Community 23 May 2017 в 11:48
поделиться