2013-07-18 2 views
1

(в первую очередь, позвольте мне извиниться, если это очень тривиальный вопрос. Я только начинаю с прошивкой и Objective-C)Условное начало App/View

Я работаю над приложением IOS 6 для чего требуется проверенная учетная запись пользователя. Регистрация осуществляется двухэтапно: сначала пользователь должен зарегистрировать свое имя и номер телефона, приложение затем свяжется с бэкэнд-службой, которая отправит пользователю код подтверждения с помощью SMS. Затем пользователь должен продолжить, введя этот код в приложение. Когда все это сделано, пользователь может, наконец, начать использовать приложение.

Мой вопрос заключается в следующем: как регистрация является единственным процессом, как наилучшим образом разработать поток относительно представлений? Мое текущее решение основано на «представлении всплеска», которое определяет, где пользователь находится в процессе регистрации (не создан, не проверен или сделан), а затем загружает правильный вид. Это, однако, кажется немного громоздким, поскольку я действительно создаю представление, которое я увольняю сразу после.

Редактировать: В качестве последующего вопроса: если мое текущее решение жизнеспособно, какой метод будет лучшим местом для размещения логики? На данный момент он находится в viewDidLoad.

+0

Для вашего редактирования это полностью зависит от вашего приложения и функций, которые вы хотите достичь. Для получения подробной информации обратитесь к документу Apple или этому: http: //stackoverflow.com/questions/1579550/uiviewcontroller-viewdidload-vs-viewwillappear-what-is-the-proper-division-of –

+0

Проверьте это также: - http://stackoverflow.com/questions/5630649/what-is-the-difference-between-viewwillappear-and-viewdidappear –

+0

@Piyush Спасибо за эти ссылки, я посмотрю. –

ответ

1

Вы можете перемещаться таким образом.

Сделать Root View Controller так же, как заставка. На Root View Контроллер, просто проверьте, запущено ли приложение в первый раз или n-й раз (после успешной регистрации). Если приложение запускается в течение в первый раз, перейдите на страницу регистрации пользователя, и если пользователь зарегистрировал , перейдите на главный экран пользователя (или ваш нужный экран ).


Чтобы проверить, работает ли приложение в первый раз или нет, вы можете использовать NSUserDefault.

+0

Благодарим вас за ответ. У вас есть какие-либо источники по этому поводу или это из личного опыта? Я немного поучаю в принятии, если другие ответят разными решениями. –

+0

Ну, это моя собственная логика, и я использовал во многих приложениях, которые я разработал. Я видел людей, использующих то же самое.И у меня не было бы проблем с тем, чтобы выдержать принятие. –

+0

Хорошо, отлично. Еще раз спасибо. –

0

Я использую следующий код, чтобы получить текущее состояние, а затем загрузить нужный вид, проверьте, если это помогает:

-(NSString *)get_provision_status{ 
NSString *status; 
NSUserDefaults *prefrences = [NSUserDefaults standardUserDefaults]; 
status=[prefrences stringForKey:@"PROVISION_STATUS"]; 
if ([status isEqualToString:@"(null)"] || [status rangeOfString:@"(null)"].location!=NSNotFound) 
{ 
    status=[NSString stringWithFormat:@""]; 
    return status; 
} 
else 
    return status; 
} 




-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    /*Process for check current provision status*/ 
    current_status=[self get_provision_status]; 
if ([current_status isEqualToString:@""] || [current_status rangeOfString:@"(null)"].location!=NSNotFound) { 
    NSLog(@"First Time View"); 
} 

else if ([current_status isEqualToString:@"PROVISION-COMPLETED"]) { 
    NSLog(@"Home Screen Or view When provision completed"); 

} 
    else 
    { 
     NSLog(@"Handle any other conditions if you have"); 
    } 
    self.window.rootViewController = self.navController; 
    [self.window makeKeyAndVisible]; 
    return YES; 

}

1

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

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if (![defaults objectForKey:@"firstRun"]) 
    [defaults setObject:[NSDate date] forKey:@"firstRun"]; 

[[NSUserDefaults standardUserDefaults] synchronize]; 

Предоставлено: - https://stackoverflow.com/a/1664275/1865424

Я думаю, что это поможет вам.

+0

Спасибо. Я пойду на это решение (аналогичный ответ был представлен вчера, поэтому «принять» идет туда). –

+0

@KGChristensen это нормально .. если вам нужна помощь, пинговать меня. – Shivaay

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