1

我使用 swrevealviewcontroller 将幻灯片菜单添加到我的应用程序,

在此处输入图像描述

假设我们在图片中有这样的菜单,我需要从 My appDelegate 导航到菜单中的任何项目(例如:Map View Controller)

我的尝试:

在我的 appDelegate.m

 UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"Main" bundle:nil];

    InforView *school_view = [storyboard instantiateViewControllerWithIdentifier:@"info_view"];

   [self.window  makeKeyAndVisible];

   [self.window.rootViewController presentViewController:school_view animated:YES completion:NULL];

当它移动到 InforView 控制器时,它在 viewdidload 中崩溃

- (void)viewDidLoad
{
    [super viewDidLoad];
    _nav_bar.target = self.revealViewController;
    _nav_bar.action = @selector(revealToggle:);

 // its crash here 
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

我的故事板

导航控制器 --> 主视图 --> 显示视图控制器

显示视图控制器有两个视图 --> 滑动菜单导航控制器 --> 前视图

我的幻灯片菜单有一些如图所示的项目

我需要从我的 appDelegate 导航到其中一项

在此处输入图像描述

4

2 回答 2

3

终于我找到了答案

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    // this any item in list you want navigate to 
Home_tableView *home = (Home_tableView *) [storyboard instantiateViewControllerWithIdentifier:@"home_view"];

SlideMenu *slidemenu = (SlideMenu *)[storyboard instantiateViewControllerWithIdentifier:@"Menu_view"];

UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:home];

UINavigationController *smVC = [[UINavigationController alloc]initWithRootViewController:slidemenu];

// define rear and frontviewcontroller  
SWRevealViewController *revealController = [[SWRevealViewController alloc]initWithRearViewController:smVC frontViewController:nav];

// make it as root 
self.window.rootViewController = revealController;
于 2015-02-17T08:02:52.793 回答
0

在 SidebarDemo 项目中,您可以使用以下代码在初始加载时显示 MapViewController。

SWRevealViewController *revealViewController = (SWRevealViewController*)self.window.rootViewController;
UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MapViewController *mapVC = [storyboard instantiateViewControllerWithIdentifier:@"MapID"];

[self.window  makeKeyAndVisible];

UINavigationController* navController = (UINavigationController*)revealViewController.frontViewController;
[navController setViewControllers: @[mapVC] animated: NO ];
[revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];

之后makeKeyAndVisible,revealViewController的frontViewController和realViewController被加载。并且可以设置frontViewController的rootViewController,它是一个navigationController。

于 2015-02-11T07:09:35.503 回答