У меня возникли проблемы с определением destinationViewController
с помощью SWRevealViewController
На некоторых ViewControllers я использовал метод prepareForSegue
для определения пункта назначения следующим образом:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showHint"]) {
HintsViewController *hintsVC = [segue destinationViewController];
hintsVC.hintDelegate = self.controller;
hintsVC.hintUsed = self.controller.hintUsed;
hintsVC.firstLetterUsed = self.controller.firstLetterUsed;
hintsVC.answersUsed = self.controller.answersUsed;
}
Эти viewControllers напрямую связаны через Segues на раскадровке. И с помощью этого метода я могу идентифицировать targetViewcontroller и установить его как делегата.
Однако у меня есть BarButtonItem в моем FirstViewController, который подключен к MenuViewController следующим образом в методе viewDidLoad
SWRevealViewController *revealViewController = self.revealViewController;
if(revealViewController){
[self.sideBarButton setTarget:self.revealViewController];
[self.sideBarButton setAction:@selector(rightRevealToggle:)];
revealViewController.rightViewRevealWidth = self.view.frame.size.width * 0.65;
}
Это показывает MenuViewController, и он находится в MenuViewController, который я хочу установить в качестве делегата.
Так что в идеале я должен быть в состоянии сделать что-то вроде:
MenuViewController* menuVC = revealViewController.destinationViewController;
menuVC.delegate = self;
Однако я не могу идентифицировать MenuViewControler с помощью метода viewDidLoad, и я не уверен, как реорганизовать кнопку боковой панели, чтобы использовать именованный переход раскадровки.