您好我是iOS新手并尝试实施SWRevealViewController
。我已经按照一些教程并在教程项目中成功实现了SWRevealViewController
,但我正在努力在现有项目中实现幻灯片菜单。
所以我有一个故事板,其中首先出现一个NavigationController
,它是一个初始视图控制器,然后是标志,输入或注册屏幕。全部连接到导航控制器。登录后,我将显示汉堡菜单显示的主屏幕。
通过查看教程我尝试过将ViewController拖到故事板并添加一个类SWRevealViewController
。然后我拖动了TableViewController
并用菜单项填充了一些行。接下来,我已经完成了从SWRevealViewController到Table视图控制器的控制拖动,并选择reveal view controller set controller
并将其命名为sw_rear
。
现在,在sw_front
的教程中,他们已将SWRevealViewController
连接到直接连接到主屏幕的NavigationViewController。但在我的项目中,并不是因为NavigationController直接连接到signin。我在这里试了两件事。首先我通过segue从SWRevealViewController
连接到NavigationViewController并且它不起作用,我还尝试将另一个NavigtionViewController嵌入到主屏幕中,但它仍然无效。我希望你能理解我的问题。
代码:
if revealViewController() != nil {
print("check")
menuButton.target = revealViewController()
menuButton.action = "revealToggle:"
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
答案 0 :(得分:0)
实际上SWRevealViewController performSegueWithIdentifier没有工作,所以进入你的SWRevealViewController类并用这个替换方法
- (void)loadStoryboardControllers
{
if ( self.storyboard && _rearViewController == nil )
{
//Try each segue separately so it doesn't break prematurely if either Rear or Right views are not used.
@try
{
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"yourMenuController storyboard Identifier"];
SWRevealViewControllerSegueSetController *segue = [[SWRevealViewControllerSegueSetController alloc] initWithIdentifier:SWSegueRearIdentifier source:self destination:controller];
[segue perform];
}
@catch(NSException *exception) {}
@try
{
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"your front viewcontroller storyboard Identifier"];
SWRevealViewControllerSegueSetController *segue = [[SWRevealViewControllerSegueSetController alloc] initWithIdentifier:SWSegueFrontIdentifier source:self destination:controller];
[segue perform];
}
@catch(NSException *exception) {}
@try
{
[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
}
@catch(NSException *exception) {}
}
}
答案 1 :(得分:0)