2015-05-11 1 views
1

Я использую RESIDEMenu в своем приложении. Но перед RESIDMenu мне нужно добавить контроллеры регистрации и регистрации.ResideMenu: Добавить новые viewcontrollers перед RESIDMenu

Возможно ли, если да, то как я могу это сделать?

Заранее спасибо.

+0

Я хотел бы добавить модальный контроллер представления над ним , Это, на мой взгляд, лучшая практика для создания входа в систему. – Asaf

ответ

0

Существует много способов сделать это. Наиболее распространенным является у вас есть контроллер LoginView, а затем в приложение делегата вы можете написать что-то подобное в приложение делегата:

if([[NSUserDefaults standardUserDefaults] valueForKey:@"AlreadyLogin"]) 
     { 
     // So, here user already login then set your root view controller, let's say `SecondViewController`` 
     SecondViewController *secondViewController = [storyBoard instantiateViewControllerWithIdentifier:@"SecondViewController"]; 
     // then set your root view controller 
     self.window.rootViewController = secondViewController; 
    } 
else 
{ 
    // It means you need to your root view controller is your login view controller, so let's create it 
    LoginViewController *loginViewController= [storyBoard instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
    self.window.rootViewController = loginViewController; 
} 

Кредит: Skip view if user already logged

0

Да, это вполне возможно.

Раствор А:

После успешного Войти/зарегистрироваться, сделайте следующее:

[UIApplication sharedApplication].window.rootViewController = [[RESideMenu alloc] init...]; 

Решение B:

Плейс контроллеры Логин/просмотр подключений в области основного содержания части RESideMenu и отключите два боковых меню до тех пор, пока пользователь не войдет в систему.

Решение C:

RESideMenu встроить в UINavigationController и при необходимости скрыть панель навигации.

Для получения дополнительной информации я рекомендую исследовать «сдерживание контроллера вида», поскольку это шаблон, используемый RESideMenu, UINavigationController и другими типами «контейнерных» контроллеров.

я взломал вместе быстрый пример решения C и, кажется, работает хорошо:

@implementation LoginViewController 

- (void)viewDidLoad { 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    button.frame = CGRectMake(50, 50, 100, 100); 
    [button setTitle:@"Login" forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(goToRESideMenu) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:button]; 

    self.navigationController.navigationBarHidden = YES; 
} 

- (void)goToRESideMenu { 
    UIViewController *redViewController = [[UIViewController alloc] init]; 
    redViewController.view.backgroundColor = [UIColor redColor]; 
    UIViewController *greenViewController = [[UIViewController alloc] init]; 
    greenViewController.view.backgroundColor = [UIColor greenColor]; 
    UIViewController *blueViewController = [[UIViewController alloc] init]; 
    blueViewController.view.backgroundColor = [UIColor blueColor]; 

    RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:redViewController 
                 leftMenuViewController:greenViewController 
                rightMenuViewController:blueViewController]; 
    [self.navigationController pushViewController:sideMenu animated:YES]; 
} 

@end 

Результат выглядит следующим образом:

demo