У меня возникли проблемы, идентифицирующая destinationViewController
с помощью SWRevealViewController
установка делегата на цели ViewController
О некотором ViewControllers я использовал метод prepareForSegue
для идентификации назначения следующего SWRevealViewController 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, и я не уверен в том, как реорганизовать sidebarbutton использовать именованный раскадровку непосредственно перейти.
Благодарности. Это именно то, что я искал. –
У меня все еще проблема. Поскольку я назначаю делегат в методе viewDidLoad, когда не был создан экземпляр MenuVC, поэтому два диспетчера просмотра не имеют ссылки друг на друга, чтобы методы делегирования не срабатывали. Не знаете, как его преодолеть. Обычно я хотел бы использовать prepareForSegue, но я не вижу способа настроить Segues для этого конкретного случая с помощью SWReveal –
. Вы можете подклассифицировать контроллер и в методе viewDidLoad установить задний и внешний контроллер ... Почему вам нужно делегировать из меню в ваш frontViewController? Вы можете общаться через контроллер рассылки. – tbilopavlovic