Я хочу определить, когда меню закрыто. Я нашел этот SO решенным вопросом. В комментариях к принятому ответу говорят, что этот метод:
-(void)setGestureCompletionBlock:(void(^)(MMDrawerController * drawerController, UIGestureRecognizer * gesture))gestureCompletionBlock;
должен находиться в App delegate
, чтобы получать уведомления о закрытии меню. Я поместил эту функцию в свой делегат приложения, и в ее реализации я сделал NSLog(@"menu closed");
, но в моей консоли ничего не печатается, и функция не запускается, когда я закрываю меню.
Может кто-нибудь объяснить мне, пожалуйста, как я могу определить, что меню закрыто? (На основе данного ответа или если у вас есть другой)
Изменить:
В раскадровке у меня есть UINavigationController, связанный с UIViewController, имеющим тип MMDrawerController (myVCMMdrawerController
), затем у меня также есть myCenterVC
, leftVC
и rightVC
. В myVCMMdrawerController
viewDidLoad
я делаю следующее:
MyCenterVC * centerVC = [[self storyboard] instantiateViewControllerWithIdentifier:@"myCenterVC"];
centerVC.drawerController = self;
LeftVC * leftVC = [[self storyboard] instantiateViewControllerWithIdentifier:@"leftVC"];
leftVC.drawerController = self;
self.centerViewController = centerVC;
self.leftDrawerViewController = leftVC;
self.showsShadow = false;
//[self setMaximumLeftDrawerWidth:[UIScreen mainScreen].bounds.size.width animated: true completion: nil];
//enable gesture
self.openDrawerGestureModeMask = MMOpenDrawerGestureModeAll;
self.closeDrawerGestureModeMask = MMCloseDrawerGestureModeAll;
[self closeDrawerAnimated:NO completion:nil];
В myCenterVC
я делаю действия по отображению меню в IBActions так:
[self.drawerController toggleDrawerSide:MMDrawerSideLeft animated:true completion:nil];