Как открыть ViewController перед запуском приложения в iOS - PullRequest
2 голосов
/ 24 ноября 2011

Я работаю в iOS 5, и перед загрузкой приложения я хочу открыть другой контроллер представления, в который пользователь должен ввести некоторые данные, например, например .password, и когда пароль совпадет, приложение будет открыто, яне понимаю, как это сделать .. Я попробовал какой-то код, который я написал ниже

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    if(somecondition)
    {       
        ViewController *View =[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; 
        [_window addSubview:View.view];
    }

    return YES;
}

Но я не знаю, правильный ли это путь, поэтому, друзья, пожалуйста, помогите мне ..

С уважением, Ранджит

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011

Вы должны использовать

[self.window setRootViewController:yourViewController]

вместо addSubview в вашем окне.
Кстати, поиск, прежде чем спрашивать, это хорошая привычка. ;)


Если вы хотите показать представление, такое как loginView или loadingView, вы можете установить его в качестве rootViewController, после загрузки вы можете сбросить rootViewController.
Обратите внимание, что в вашем ProjectAppDelegate.m вы можете получить window self.window, а в других контроллерах дочерних представлений вам понадобится

[[[UIApplication sharedApplication] delegate] window]

чтобы получить ваше главное окно.

Еще один простой способ для удовлетворения ваших требований заключается в том, что вы можете просто представить modalView перед показом своего приложения. Удалите его после завершения, а затем запустите приложение.

Вы можете получить больше предложений ЗДЕСЬ .


Кстати, извините, я не получил уведомление о ваших комментариях, когда вы пишете в области комментариев других пользователей несколько дней назад. :( Вы должны добавить @ перед именем пользователя, когда вы комментируете где-то еще.

2 голосов
/ 24 ноября 2011

Вы можете создать некоторую переменную bool для проверки, это первый запуск или другой.Лучшее место для хранения этого bool - NSUserDefaults.Хорошо, если это первый запуск, тогда покажите свой LoginViewController, если нет - выполните обычный код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    UIViewController *startVC = nil;

    if (isFirstLaunch){
        startVC = [[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil] autorelease];
    }
    else{
        startVC = [[[WorkspaceViewController alloc] initWithNibName:@"WorkspaceView" bundle:nil] autorelease];
    }

    navController = [[UINavigationController alloc] initWithRootViewController:startVC];

    [self.window makeKeyAndVisible];
    [self.window addSubview:navController.view];

    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...