登录用户使用NSUserDefaults执行segue不工作的用户数据

时间:2017-06-21 05:16:26

标签: ios objective-c iphone xcode nsuserdefaults

我实际上是在尝试执行segue,如果用户登录到主页并且segue已连接并且我已将标识符指定为“loggedin” 我目前还没有注销登记,所以没有办法清除NSUserDefaults,我也检查了它也给了我的价值!!

下面是我的视图在这里我做了第一个视图控制器的加载方法我从otp用户获取手机号码

- (void)viewDidLoad {
    [super viewDidLoad];
    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    self.custid =[defaults objectForKey:@"uid"];
    NSLog(@"Customer id--%@",self.custid);
    if(self.custid!=nil)
    {
        [self performSegueWithIdentifier:@"loggedin" sender:self];
    }

    [_checkboxb setBackgroundImage:[UIImage imageNamed:@"unsigned checkbox"]
                         forState:UIControlStateNormal];
    [_checkboxb setBackgroundImage:[UIImage imageNamed:@"signed check box"]
                         forState:UIControlStateSelected];
    UIGraphicsBeginImageContext(self.view.frame.size);
}

这是我的故事板,在日志中你可以看到错误 this is my screenshot

我的视图控制器代码执行的不是登录正在执行的第一个视图,而是视图是第一个视图控制器

1 个答案:

答案 0 :(得分:1)

请勿在第一个视图控制器中检查用户登录状态。检查AppDelegate中的登录状态,并根据该状态分配根视图控制器。

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
  UIViewController *viewController;
  NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
  if([defaults objectForKey:@"uid"]!=nil)
  {
    viewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController"];
  }
  else
  {
    viewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController1"];
  }
  self.window.rootViewController = viewController;//With out NavigationController
  //self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:viewController];//With NavigationController
  [self.window makeKeyAndVisible];
  return YES;
}