2017-05-08 75 views
1

我有要求在一段时间后自动注销用户,我能够做到这一点,并注销应用程序导航到loginview但问题是,当我我在一个视图中执行一些操作,比如从日期选择器中选择日期,或者如果应用程序注销,则可以在此时打开其他弹出窗口,然后在登录视图中显示弹出窗口或日期选择器或警报视图视图。自动注销用户,当应用程序处于非活动状态的固定时间

所以我的问题是如何从loginview中删除它。这是我用来注销我的应用程序的代码。

@implementation MyApplication 

    - (void)sendEvent:(UIEvent *)event { 

     [super sendEvent:event]; 

    // Only want to reset the timer on a Began touch or an Ended touch, to reduce the number of timer resets. 

    NSSet *allTouches = [event allTouches]; 

    if ([allTouches count] > 0) { 

     UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase; 
     if (phase == UITouchPhaseBegan || phase == UITouchPhaseEnded) 
       [self resetIdleTimer]; 
      NSLog(@"resetIdleTimer"); 
     [[NSUserDefaults standardUserDefaults]setValue:@"no" forKey:@"istouch"]; 
    } 

} 

    -(void)resetIdleTimer { 

    if (self.idleTimer) { 
     [self.idleTimer invalidate]; 
    } 
    NSTimeInterval timeInterval = [[[User currentUser]AutomaticLogoutTime] doubleValue]*60; 

    if (timeInterval > 0) { 
     [[NSUserDefaults standardUserDefaults]setValue:@"yes" forKey:@"istouch"]; 
      self.idleTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO] ; 

    } 
} 

-(void)idleTimerExceeded { 

    [[NSNotificationCenter defaultCenter] postNotificationName:@"DataUpdated" 
                object:self]; 
} 
+0

,解除警报/弹出 –

+0

是的!我们可以做到这一点,但我们不知道它是流行/警报/日期选择器或其他人。流行/警报/日期选择器来自其他视图。我们如何在我的登录视图控制器上获得其他视图子视图的实例。 –

+0

关闭一切或有一个变量,持有什么是打开和解雇相应... –

回答

1

您可以关闭已呈现

[self.presentedViewController dismissViewControllerAnimated:YES completion:nil]; 

这是一个好习惯解雇任何UIAlertController,ImagePicer的任何视图 - 控制...所以之前您的应用程序将后台用户会下次他们将应用程序放到前台时不会感到困惑。

lestin通知和viewWillDisapper解散你呈现控制器在正确的地方

+0

谢谢。它正在工作。 –

+0

欢迎您。快乐的编码 –

相关问题