-4

我对 Xcode 很陌生,如果用户登录到我的应用程序或者他没有登录,我想找到一种显示不同内容的方法。

我有一个选项卡式应用程序。经过身份验证的用户应直接访问选项卡式视图。但是不是的用户应该登陆身份验证页面。

我的猜测是我需要有类似的东西:

if (user) {
    // Do stuff if user logged in.
} else {
    // Display the authentication page.
}

但我不知道如何实现这一点,我也没有找到任何相关信息。我正在寻找提示。

编辑:

我的问题不是关于我如何知道用户是否经过身份验证,而是如何在一个案例中显示特定页面,在另一个案例中显示另一个页面。

知道我已经知道如何区分经过身份验证的用户,我应该在哪里以及如何编写代码:

   if (user is authenticated) {
// SHOW FIRSTVIEWCONTROLLER
   } else {
// SHOW SECONDVIEWCONTROLLER
  }

编辑2:

我有一个选项卡式应用程序,有 3 个选项卡和一个主故事板(没有 xibs)。我想在标签页之前添加一个页面,用户可以在其中进行身份验证。

所以我需要在一个条件下显示这个viewController。如果用户未通过身份验证,则显示页面,如果是,则直接显示选项卡式页面。

同样,我不想知道如何区分用户是否经过身份验证,我只是想知道在满足条件时如何显示 ViewController。

4

2 回答 2

2

我将在第一个选项卡中显示来自控制器的 viewDidAppear 方法的身份验证页面。如果你使用 presentViewController:animated:completion: 并且动画参数设置为 NO,模态视图将是用户看到的第一件事。因此,您可以将逻辑放在该 viewDidAppear 方法中,以确定是否进行该演示。

于 2013-05-12T16:21:35.180 回答
1

为此,您需要使用此处为 Apple 文档)。为了使用这个类,你保存一个值——一个布尔值、数字、字符串或一些对象,可以在用户下次打开你的应用程序时读取。

您可以使用类似的方式告诉您的应用用户已登录。

 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loggedIn"];

然后下次用户进入您的应用程序时,只需查看他是否已登录:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"loggedIn"]) {
  //show information
} else { 
  //Show Login Screen

如果您需要存储实际凭据,只需使用setObject: forKey:并读回带有objectForKey:.

于 2013-05-12T15:37:41.947 回答