Правильный способ показать экран входа в систему, а затем меню UITabbarController - PullRequest
4 голосов
/ 26 октября 2011

Мне нужно реализовать следующее, и я хотел знать правильный способ сделать это.

при запуске приложения iPhone, мне нужно показать изображение логотипа в течение 2 секунд, а затем экран входа в систему, который позволяет человеку войти или создать учетную запись.Как только человек входит в систему, мне нужно показать опции меню tabbarcontroller.

Вот как я сейчас это делаю:

В AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    LoginViewController *viewController0 = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    UINavigationController *aNavigationController0 = [[UINavigationController alloc] initWithRootViewController:viewController0];    
    self.window.rootViewController = aNavigationController0;    
    // I also implement an iVar of the UITabBarController here...
    // ....
}

@implementation:

@implementation LoginViewController

- (IBAction)createNewAccountButtonClicked:(id)sender {      
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    delegate.window.rootViewController = delegate.tabBarController;
}

Итак, мои вопросы:

  1. Это правильный способ показать панель вкладок для моей цели?

  2. В этой схеме вещей,Я не могу показать логотип анимированный.Любые указатели о том, как это сделать?

1 Ответ

2 голосов
/ 26 октября 2011

В приведенном ниже коде предполагается, что вы используете ARC, а если нет, то вам нужно сделать MRC.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window                             = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.tabBarController                   = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
    self.window.rootViewController          = self.tabBarController;

    LoginViewController *loginViewController= [[LoginViewController alloc] initWithNibName:nil bundle:nil];
    loginViewController.delegate            = self;
    UINavigationController *loginNavCont    = [[UINavigationController alloc] initWithRootViewController:loginViewController];

    [self.tabBarController presentModalViewController:loginNavCont animated:NO];

    UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default"]];
    [self.window addSubview:splashScreen];
    [UIView animateWithDuration:0.5
                          delay:2.0
                        options:0
                     animations:^{
                         splashScreen.alpha = 0.0;
                     }
                     completion:^(BOOL finished) {
                         [splashScreen removeFromSuperview];
                     }];

    [self.window makeKeyAndVisible];

    return YES;
}

- (void)loginViewControllerShouldBeDismissed:(UIViewController *)viewController
{
    [self.tabBarController dismissModalViewControllerAnimated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...