2015-04-24 2 views
1

Я использую библиотеку SWRevealViewController для переднего и заднего вида, и она работает. Проблема заключается в том, что, когда я нажимаю кнопку меню, вид сзади si под навигационной панелью, а fron вид сдвигается вправо.SWRevealViewController - вид спереди под задним окном

Можно ли заблокировать вид спереди и посмотреть меню в верхней части панели навигации?

Мой код:

в AppDelegate:

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.window = window; 

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

    SplashScreenViewController *splashScreenViewController = (SplashScreenViewController *)[storyboard instantiateViewControllerWithIdentifier:@"splash"]; 
    UINavigationController *navControllerFront = [[UINavigationController alloc]initWithRootViewController:splashScreenViewController]; 

    MenuNavigationViewController *menuViewController = (MenuNavigationViewController *)[storyboard instantiateViewControllerWithIdentifier:@"menu"]; 
    UINavigationController *navControllerRear = [[UINavigationController alloc]initWithRootViewController:menuViewController]; 


    SWRevealViewController *revealController = [[SWRevealViewController alloc] initWithRearViewController:navControllerRear frontViewController:navControllerFront]; 

    revealController.delegate = self; 
    self.viewController = revealController; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

FrontView файл (не SplashScreen):

SWRevealViewController *revealController = [self revealViewController]; 
    [revealController panGestureRecognizer]; 
    [revealController tapGestureRecognizer]; 

    UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController; 
    [navController setNavigationBarHidden:NO animated:YES]; 

    UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"menu.png"] style:UIBarButtonItemStylePlain target:revealController action:@selector(revealToggle:)]; 
    revealButtonItem.image = [revealButtonItem.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
    self.navigationItem.leftBarButtonItem = revealButtonItem; 

Как решить эту проблему?

Большое спасибо

enter image description here

Edit: Я решен с этим кодом в "didFinishLaunchingWithOptions" метод

SWRevealViewController *revealViewController = (SWRevealViewController *)self.window.rootViewController; 

    UINavigationController* navController = (UINavigationController*)revealViewController.frontViewController; 

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

    NewSplashScreenViewController *start = (NewSplashScreenViewController *)[storyboard instantiateViewControllerWithIdentifier:@"splashnew"]; 
    [navController setViewControllers: @[start] animated: YES]; 

    [revealViewController setFrontViewController:navController]; 
    [revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
+0

Вы когда-нибудь решали это? – user1366911

+0

Я добавил свой код, который разрешил проблему (для меня) – user3576455

+0

Привет, вы решаете этот вопрос? – mmarques

ответ

0

У меня нет окончательного ответа на этот вопрос , но мне нужно было реализовать ту же функциональность в моем проекте.

Автор SWRevealController настоял на том, чтобы реализовать эту функциональность. Я все еще работаю над этим.

Ссылки: https://github.com/John-Lluch/SWRevealViewController/issues/312

Я предполагаю, что люди все еще не в состоянии понять, как именно это сделать.

Смежные вопросы