Ios 我怎样才能实现一个;“首次用户注册”;我的Cocoa Touch应用程序中的工作流?
我正在我的应用程序中实现“新用户注册” 用户第一次登录时,我想让他们完成一个4步注册过程,创建用户名、设置个人资料照片等。。每一步都是一个不同的屏幕 所有这些只需要做一次。我在想-Ios 我怎样才能实现一个;“首次用户注册”;我的Cocoa Touch应用程序中的工作流?,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我正在我的应用程序中实现“新用户注册” 用户第一次登录时,我想让他们完成一个4步注册过程,创建用户名、设置个人资料照片等。。每一步都是一个不同的屏幕 所有这些只需要做一次。我在想- 这4个屏幕的最佳设置是什么?它们是否应该是UINavigationController,以便实现为“堆栈”?i、 e.用户是否可以返回到以前的屏幕 如何保存注册状态?我想知道用户在中途离开时采取了什么步骤,或者通常知道我是否应该显示注册(即,如果这是他们的第一次)。是否有一种方法可以存储已完成的步骤数,以便如果num
UINavigationController
,以便实现为“堆栈”?i、 e.用户是否可以返回到以前的屏幕numStepsCompleted==0
则我知道它们尚未开始,如果numStepsCompleted<4
则我知道它们已开始但尚未完成谢谢 在NSUserDefaults中保存一个值,以了解用户最后完成的步骤。正如tou所说,进行导航以设置四个注册步骤。当应用程序打开阅读时,用户默认知道注册是否完成 在NSUserDefaults中保存一个值,以了解用户最后完成的步骤。正如tou所说,进行导航以设置四个注册步骤。当应用程序打开阅读时,用户默认知道注册是否完成 我将从您的根视图控制器以模态方式呈现UINavigationController。用户完成一项任务后,您可以做两件事:
+ (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;
}
如果这是第一次启动,则显示注册/登录过程,如果不是,则从keychain获取用户名和密码。我将从您的根视图控制器中演示UINavigationController。用户完成一项任务后,您可以做两件事:
+ (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;
}
如果这是第一次启动,则显示注册/登录过程,如果不是,则从keychain获取用户名和密码。有几种不同的方法来实现此功能:
1.使用
UINavigationController
2.使用
UIPageViewController
(我更喜欢它)3.使用
UITableView
在一个屏幕中包含所有信息
为了跟踪注册信息,您应该实现一个RegistrationInfo
类(或Swift中的结构)。因为应该只有一个实例,所以您可以创建一个singleton并从任何地方访问它-RegistrationInfo.sharedInstance()
您还可以在第一个ViewController中创建一个实例,并通过prepareforsgue:
将其传递给下一个实例
最后一部分是确定用户是否已经完成了注册过程。如果您使用的是用户名/密码模型,则应将该信息保存在密钥链中,并在启动时获取该信息。否则,您可以在
NSUserDefaults
中保留一个值。有几种不同的方法可以实现此功能:1.使用
UINavigationController
2.使用
UIPageViewController
(我更喜欢它)3.使用
UITableView
在一个屏幕中包含所有信息
为了跟踪注册信息,您应该实现一个RegistrationInfo
类(或Swift中的结构)。因为应该只有一个实例,所以您可以创建一个singleton并从任何地方访问它-RegistrationInfo.sharedInstance()
您还可以在第一个ViewController中创建一个实例,并通过prepareforsgue:
将其传递给下一个实例
最后一部分是确定用户是否已经完成了注册过程。如果您使用的是用户名/密码模型,则应将该信息保存在密钥链中,并在启动时获取该信息。否则,您可以在
NSUserDefaults
中保留一个值,谢谢您的示例!我想知道有没有一个好方法可以像你提到的那样“以模态方式调用UINavigation控制器”?首先用它的根视图控制器创建导航控制器,而不是从视图控制器(可以是任何人)调用[yourVC presentViewController:navVC animated:YES completion:NULL]谢谢你的示例!我知道有没有一个好方法可以像你提到的那样“以模式调用UINavigation控制器”?首先使用根视图控制器创建导航控制器,而不是从视图控制器(可以是任何人)调用[yourVC presentViewController:navVC animated:YES completion:NULL]