0

我想在一段时间没有用户活动的情况下从我的应用程序中注销。我找到了一个如何做到这一点的例子。当不活动计时器用完时,我想显示一个弹出窗口,说“在 XX 秒内注销”,其中秒数将更新 - 正在运行:60、59、58 ...然后它们达到 0 我会注销用户(弹出窗口也有一个“取消注销”按钮,我认为这很容易实现。)我试图弄清楚是否有一种简单的方法可以创建这样一个弹出窗口 - 在我看来一个相当普遍的想法,但到目前为止我找不到任何东西。

4

2 回答 2

3

将两个属性添加到您的私有接口:

@interface MyViewController ()
@property(nonatomic, strong) UIAlertView *logoutAlertView;
@property(nonatomic) NSUInteger logoutTimeRemaining;
@end

现在,当您显示警报时,请执行以下操作:

self.logoutAlertView = [[UIAlertView alloc] initWithTitle:@"Title"
                                                  message:@"Logging out in 60 seconds"
                                                 delegate:self
                                        cancelButtonTitle:@"Dismiss"
                                        otherButtonTitles:nil];
[self.logoutAlertView show];

self.logoutTimeRemaining = 60;

[NSTimer scheduledTimerWithTimeInterval:1
                                 target:self
                               selector:@selector(updateAlert:)
                               userInfo:nil
                                repeats:YES];

您的updateAlert:方法如下所示:

- (void)updateAlert:(NSTimer *)timer {
    self.logoutTimeRemaining--;
    self.logoutAlertView.message = [NSString stringWithFormat:@"Logging out in %d seconds", self.logoutTimeRemaining];

    if (self.logoutTimeRemaining == 0) {
        // actually log out
        [timer invalidate];
    }
}
于 2013-03-13T16:46:06.110 回答
2

UIAlertView在这种情况下 实现自定义是个好主意,并UILabel在计时器更改其值的情况下添加

按照我在此线程上的回答,只需添加UILabel而不是UIButton针对您的情况。

于 2013-03-13T16:17:21.960 回答