Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我怎样才能实现一个;“首次用户注册”;我的Cocoa Touch应用程序中的工作流?_Ios_Objective C_Cocoa Touch - Fatal编程技术网

Ios 我怎样才能实现一个;“首次用户注册”;我的Cocoa Touch应用程序中的工作流?

Ios 我怎样才能实现一个;“首次用户注册”;我的Cocoa Touch应用程序中的工作流?,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我正在我的应用程序中实现“新用户注册” 用户第一次登录时,我想让他们完成一个4步注册过程,创建用户名、设置个人资料照片等。。每一步都是一个不同的屏幕 所有这些只需要做一次。我在想- 这4个屏幕的最佳设置是什么?它们是否应该是UINavigationController,以便实现为“堆栈”?i、 e.用户是否可以返回到以前的屏幕 如何保存注册状态?我想知道用户在中途离开时采取了什么步骤,或者通常知道我是否应该显示注册(即,如果这是他们的第一次)。是否有一种方法可以存储已完成的步骤数,以便如果num

我正在我的应用程序中实现“新用户注册”

用户第一次登录时,我想让他们完成一个4步注册过程,创建用户名、设置个人资料照片等。。每一步都是一个不同的屏幕

所有这些只需要做一次。我在想-

  • 这4个屏幕的最佳设置是什么?它们是否应该是
    UINavigationController
    ,以便实现为“堆栈”?i、 e.用户是否可以返回到以前的屏幕

  • 如何保存注册状态?我想知道用户在中途离开时采取了什么步骤,或者通常知道我是否应该显示注册(即,如果这是他们的第一次)。是否有一种方法可以存储已完成的步骤数,以便如果
    numStepsCompleted==0
    则我知道它们尚未开始,如果
    numStepsCompleted<4
    则我知道它们已开始但尚未完成

  • 一般来说,如果有任何在线代码示例实现了类似的功能,那么最好看看


    谢谢

    在NSUserDefaults中保存一个值,以了解用户最后完成的步骤。正如tou所说,进行导航以设置四个注册步骤。当应用程序打开阅读时,用户默认知道注册是否完成

    在NSUserDefaults中保存一个值,以了解用户最后完成的步骤。正如tou所说,进行导航以设置四个注册步骤。当应用程序打开阅读时,用户默认知道注册是否完成

    我将从您的根视图控制器以模态方式呈现UINavigationController。用户完成一项任务后,您可以做两件事:

  • 将用户已完成注册过程的事实保存在NSUserDefault中。如果用户删除应用程序,此标志将随应用程序一起删除
  • 将用户名和密码等个人信息保存在密钥链中,它们将在删除应用程序后保留,这对于静默登录过程非常有用,并且它们是加密的
  • 对于第一点,我们可以做类似的事情

    + (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。用户完成一项任务后,您可以做两件事:

  • 将用户已完成注册过程的事实保存在NSUserDefault中。如果用户删除应用程序,此标志将随应用程序一起删除
  • 将用户名和密码等个人信息保存在密钥链中,它们将在删除应用程序后保留,这对于静默登录过程非常有用,并且它们是加密的
  • 对于第一点,我们可以做类似的事情

    + (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]