如何在我的 Cocoa Touch 应用程序中实施 "first time user registration" 工作流程?
How can I implement a "first time user registration" workflow in my Cocoa Touch app?
我正在我的应用程序中实现 "new user registration"
用户第一次登录时,我想让他们完成 4 个步骤的注册过程,以创建他们的用户名、设置他们的个人资料照片等。每个步骤都会出现不同的屏幕。
这一切只需要完成一次。我在想 -
这 4 个屏幕的最佳设置是什么?它们应该是 UINavigationController
以便作为 "stack" 实现吗?即用户可以返回到之前的屏幕?
如何保存注册状态?我想知道用户在中途离开时执行了哪一步,或者通常知道我是否应该显示注册(即,如果这是他们第一次)。有没有一种方法可以存储已完成的步骤数,这样如果 numStepsCompleted == 0
我知道他们还没有开始,如果 numStepsCompleted < 4
我知道他们已经开始但没有完成?
一般来说,如果网上有任何代码示例可以实现类似的功能,那么看看就好了。
谢谢!
在 NSUserDefaults 中保存一个值,以了解用户最后完成的步骤。正如你所说,制作一个 UINavigation 来设置四个注册步骤。当应用程序打开时,用户默认知道注册是否完成。
我将从您的根视图控制器模态地呈现一个 UINavigationController。用户完成后,您可以做两件事:
- 在 NSUserDefaults 中保存用户已经完成注册过程的事实。如果用户删除应用程序,此标志将随之删除。
- 将用户名和密码等个人信息保存在钥匙串中,它们将在应用程序删除后保留事件,这对静默登录过程很有用,并且它们是加密的。
对于第一点可以做类似的事情
+ (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;
}
如果这是第一次启动,显示 registration/login 过程,如果不是,则从钥匙串中获取用户名和密码。
有几种不同的方法可以实现这一点:
1. 使用 UINavigationController
2. 使用 UIPageViewController
(我更喜欢)
3. 使用一个UITableView
,一屏包含所有信息
要跟踪注册信息,您应该实施 RegistraionInfo
class(或 Swift 中的结构)。由于它应该只有一个实例,因此您可以创建一个单例并从任何地方访问它 - RegistrationInfo.sharedInstance()
您也可以在第一个 ViewController 中创建一个实例,然后将其传递给 prepareForSegue:
中的下一个实例。
最后一部分是确定用户是否已经完成注册过程。如果您使用的是 Username/Password 模型,那么您应该将该信息保存在钥匙串中并在启动时获取它。
否则你可以在 NSUserDefaults
.
中保留一个值
我正在我的应用程序中实现 "new user registration"
用户第一次登录时,我想让他们完成 4 个步骤的注册过程,以创建他们的用户名、设置他们的个人资料照片等。每个步骤都会出现不同的屏幕。
这一切只需要完成一次。我在想 -
这 4 个屏幕的最佳设置是什么?它们应该是
UINavigationController
以便作为 "stack" 实现吗?即用户可以返回到之前的屏幕?如何保存注册状态?我想知道用户在中途离开时执行了哪一步,或者通常知道我是否应该显示注册(即,如果这是他们第一次)。有没有一种方法可以存储已完成的步骤数,这样如果
numStepsCompleted == 0
我知道他们还没有开始,如果numStepsCompleted < 4
我知道他们已经开始但没有完成?
一般来说,如果网上有任何代码示例可以实现类似的功能,那么看看就好了。
谢谢!
在 NSUserDefaults 中保存一个值,以了解用户最后完成的步骤。正如你所说,制作一个 UINavigation 来设置四个注册步骤。当应用程序打开时,用户默认知道注册是否完成。
我将从您的根视图控制器模态地呈现一个 UINavigationController。用户完成后,您可以做两件事:
- 在 NSUserDefaults 中保存用户已经完成注册过程的事实。如果用户删除应用程序,此标志将随之删除。
- 将用户名和密码等个人信息保存在钥匙串中,它们将在应用程序删除后保留事件,这对静默登录过程很有用,并且它们是加密的。
对于第一点可以做类似的事情
+ (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;
}
如果这是第一次启动,显示 registration/login 过程,如果不是,则从钥匙串中获取用户名和密码。
有几种不同的方法可以实现这一点:
1. 使用 UINavigationController
2. 使用 UIPageViewController
(我更喜欢)
3. 使用一个UITableView
,一屏包含所有信息
要跟踪注册信息,您应该实施 RegistraionInfo
class(或 Swift 中的结构)。由于它应该只有一个实例,因此您可以创建一个单例并从任何地方访问它 - RegistrationInfo.sharedInstance()
您也可以在第一个 ViewController 中创建一个实例,然后将其传递给 prepareForSegue:
中的下一个实例。
最后一部分是确定用户是否已经完成注册过程。如果您使用的是 Username/Password 模型,那么您应该将该信息保存在钥匙串中并在启动时获取它。
否则你可以在 NSUserDefaults
.