0

我正在做一个 iOs 项目。在这个项目中,我有一个过程:

  1. 用户在注册页面注册自己
  2. 当他按下“注册”时,会显示另一个页面(通过NavigationControler,带有进度指示器和“请稍候”消息。)
  3. 从服务器获得响应后,UIAlertView显示一些消息
  4. 当用户在警报时按下“确定”时,它会移至下一个(当一切正常时)或上一个(当出现问题时)页面。

在大多数情况下,此流程有效。但有时(并非总是),当用户在进程指示器打开时将应用程序发送到后台/锁定屏幕,然后将应用程序恢复到活动状态时,UIAlertView不会显示。但是,如果用户再次将应用程序发送到后台并将其带回,则消息是可见的。

UIAlertView因为需要继续进行交互,所以这是一个问题。我不能要求用户知道,如果此时没有消息可见,他们应该再次将应用程序前后翻转。我不知道为什么会发生这种情况,以及如何避免这种行为。你能帮助我吗?

4

1 回答 1

1

当您的应用程序处于后台时,您可以发出本地通知。所以根据你的说法,如果警报视图没有出现,但你仍然希望用户知道发生了什么事情或出了什么问题,那么你可以直接使用本地通知。

这是代码 -

 UILocalNotification *localNotification = [[UILocalNotification alloc] init];

 localNotification.fireDate = self.datePicker.date;
 localNotification.alertBody = self.messageField.text;
 localNotification.soundName = UILocalNotificationDefaultSoundName;
 localNotification.applicationIconBadgeNumber = 1;

 NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"Object 1", @"Key
  1", @"Object 2", @"Key 2", nil];
 localNotification.userInfo = infoDict;

 [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
 [localNotification release];

因此,当本地通知生成时,用户可以知道这一点。您可以将用户导航到直接到应用程序。点击关闭本地通知警报。本地语言通知警报将自动出现。

这里是更多细节的链接 - http://www.iostipsandtricks.com/ios-local-notifications-tutorial/

于 2012-09-27T10:28:30.643 回答