2017-06-21 34 views
0

我实际上试图执行segue,如果用户登录到主页和segues连接,并且我已给予标识符作为“已登录” ,我还没有目前编码注销,所以没有办法清除NSUserDefaults,我也检查过,它也给我的价值回来!登录用户执行segue不工作的用户数据使用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); 
} 

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

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

+0

请勿在第一个视图控制器中检查用户登录状态。检查appdelegate中的登录状态并根据该状态来配置根视图控制器。 –

+0

@RajeshkumarR你在哪里建议我使用root view controller? – Akshay

+0

在AppDelegate'didFinishLaunchingWithOptions'方法 –

回答

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; 
} 
+0

是标识符segue的标识符吗?或查看控制器ID ??是故事板vc的?? – Akshay

+0

@Akshay号这是视图控制器的标识符 –

+0

和一个问题如何注销和执行segue到otp视图? – Akshay