2015-03-02 2 views
1

Я внедряю «новую регистрацию пользователя» в своем приложенииКак я могу реализовать рабочий процесс «первого пользователя» в приложении Cocoa Touch?

При первом входе пользователя в систему я хотел бы, чтобы у них была 4-ступенчатая процедура регистрации, чтобы создать свое имя пользователя, задать свою фотографию профиля , и т. д. Каждый шаг будет другим экраном.

Все это нужно сделать только один раз. Мне было интересно -

  1. Какая оптимальная установка для этих 4 экранов? Должны ли они быть UINavigationController, чтобы они были реализованы как «стек»? то есть пользователь может вернуться к предыдущим экранам?

  2. Как сохранить состояние регистрации? Я хотел бы знать, на каком этапе был пользователь, если они уходят на полпути или вообще знают, следует ли мне отображать регистрацию (т. Е. Если это их первый раз). Есть ли способ сохранить количество выполненных шагов, так что если numStepsCompleted == 0, то я знаю, что они еще не начались, и если я знаю, что они начали, но не закончены?

В целом, если есть примеры кода в Интернете, которые реализуют что-то вроде этого, было бы здорово смотреть на него.

Спасибо!

ответ

4

Я бы предоставил UINavigationController из вашего корневого контроллера. Один пользователь закончил, вы можете сделать 2 вещи:

  1. Сохранить в NSUserDefaults тот факт, что пользователь уже завершил процесс регистрации. Если пользователь удалит приложение, этот флаг будет удален вместе с ним.
  2. Сохраните личную информацию, такую ​​как имя пользователя и пароль в цепочке ключей, они будут сохраняться после удаления приложения, которые могут быть полезны для бесшумного процесса входа в систему, и они шифруются.

Для первой точки, чтобы можно сделать что-то вроде этого

+ (BOOL)isFirstTime{ 
    static BOOL flag = NO; 
    static BOOL result; 
    if(!flag){ 
     if ([[NSUserDefaults standardUserDefaults] boolForKey:@"hasBeenLaunchedOnce"]) 
     { 
      result = NO; 
     } 
     else 
     { 
      [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasBeenLaunchedOnce"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
      result = YES; 
     } 

     flag = YES; 
    } 
    return result; 
} 

Если это самый первый запуск, показать процесс регистрации/Логин, если не идти вместе, приняв имя пользователя и пароль от брелка.

+0

Спасибо за пример! У меня есть хороший способ «вызвать UINavigation Controller modally», как вы упомянули? – user2490003

+0

Сначала создайте навигационный контроллер с контроллером корневого представления, а не с контроллера вида (может быть кто-нибудь) назовите [yourVC presentViewController: navVC animated: YES complete: NULL] – Andrea

1

Сохраните значение в NSUserDefaults, чтобы узнать, какой последний завершенный шаг выполняется пользователем. Как сказал Тоу, сделайте UINavigation, чтобы настроить четыре этапа регистрации. Когда приложение откроется, прочитайте по умолчанию пользователи, чтобы узнать, завершена ли регистрация.

0

Есть несколько различных способов реализует это:
1. Используйте UINavigationController
2. Используйте UIPageViewController (который мне нравится лучше)
3. Используйте UITableView, чтобы содержать всю информацию на одном экране

Чтобы отслеживать регистрационную информацию, вы должны реализовать класс RegistraionInfo (или структуру в Swift).Так как должен быть только один экземпляр, вы можете создать одноэлементный номер и получить доступ к нему из любого места - RegistrationInfo.sharedInstance()

Вы также можете создать экземпляр в первом ViewController и передать его на следующий номер prepareForSegue:.

Последняя часть предназначена для определения того, завершил ли пользователь процесс регистрации. Если вы используете модель Username/Password, вы должны сохранить эту информацию в цепочке ключей и получить ее при запуске.
В противном случае вы можете сохранить значение в NSUserDefaults.

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