2016-06-03 1 views
1

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

Любая помощь?

ответ

2

хорошо я работал с/на SWRevealViewController некоторое время так, что вам нужно, это добавить frontViewController в SWRevealViewControllerDelegate, а затем реализует эту функцию

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) 

вы будете уведомлены, когда frontViewController идти влево или переднее положение

это Swift код

в вашем frontViewController вам нужно добавить

class FrontViewController: UIViewController, SWRevealViewControllerDelegate 
{ 
override func viewDidLoad() { 
super.viewDidLoad() 
self.revealViewController().delegate = self; 
} 

// ВАШ КОД //

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) { 
     if(position == FrontViewPosition.Left) 
     { 
      self.view.userInteractionEnabled = true; 
      self.navigationController?.navigationBar.userInteractionEnabled = true; 
     }else 
     { 
      self.view.userInteractionEnabled = false; 
      self.navigationController?.navigationBar.userInteractionEnabled = false; 

     } 
} 

// EDITED

Это Objective код

class FrontViewController: UIViewController <SWRevealViewControllerDelegate> 

C в viewDidLoad вам нужно добавить

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.revealViewController.delegate = self; 
} 

// ВАШ КОД //

- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position 
{ 
    if(position == FrontViewPositionLeft) 
    { 
     self.view.userInteractionEnabled = NO; 
     self.navigationController.navigationBar.userInteractionEnabled = NO; 
    }else{ 
     self.view.userInteractionEnabled = YES; 
     self.navigationController.navigationBar.userInteractionEnabled = YES; 
    } 
} 

Я надеюсь, что это поможет вам

+0

Здравствуйте еще раз @ user5432778 если мой ответ сделал решить вашу проблему вы можете пометить мой ответ, как принято , спасибо –

+0

Эй, да, похоже, это сработает. Не могли бы вы помочь с объективной версией c? Благодаря! – user5432778

+0

OK @ user5432778, я публикую версию Objective C за несколько минут –