多个AlertViews - 删除另一个alertview后面的alertview

时间:2011-03-03 23:50:09

标签: iphone uialertview

我认为这种情况应该是奇怪的,但我对此感到困惑。

我有一个视图让我们说View1,它会显示一个或多个alertviews.Alerts如果不受影响,就会一个堆叠在另一个之上。 这个问题来了。 如果我点击最顶级警报,它应该带我到一个完整的新视图,让我们说View2。确实如此。现在我仍然在View2中显示剩余的警报。我不希望这种情况发生。如何自动关闭从View1创建的待处理警报,这些警报当前正在View2中显示?

真的很感激任何帮助或任何想法..

由于

4 个答案:

答案 0 :(得分:4)

试试这个,

    UIAlertView *autoAlertView = [[UIAlertView alloc] initWithTitle:@"Auto-dismissed Alert" message:@"This alert will be dismissed in 5 seconds." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    [self performSelector:@selector(dismissAlert:) withObject:autoAlertView afterDelay:5];
    [autoAlertView show];
    [autoAlertView release];

-(void)dismissAlert:(UIAlertView *)alert {
    [alert dismissWithClickedButtonIndex:0 animated:YES];
}

答案 1 :(得分:3)

不是你想要的问题的答案,但是......

为什么你有这么多警报?听起来你可能会过度使用它们。 Apple在人机界面指南中非常清楚如何使用UIAlerts:

  

避免创建不必要的警报。

     

通常不需要这些警报   如果他们:

     
      
  • 仅提高某些信息的可见度   与...相关的信息   你的标准功能   应用
  •   
     

相反,你应该设计一个   引人注目的展示方式   与您的信息协调的信息   应用程序的风格。

     
      
  • 更新正在进行中的任务的用户。
  •   
     

相反,请考虑使用进度   查看或活动指标   提供与进展相关的反馈   用户(这些反馈方法是   在“进度视图”中描述   “活动指标”)。

     
      
  • 要求确认用户启动的操作。
  •   
     

要获得行动的确认   用户发起的,甚至是潜在的   有风险的行为,例如删除a   联系,你应该使用一个动作   片材。

     
      
  • 告知用户他们无能为力的错误或问题。
  •   
     

虽然可能需要使用   提醒用户告诉用户   这是他们无法解决的关键问题   更好地整合这些信息   如果可能的话,进入UI。例如,   而不是每次都告诉用户   服务器连接失败,显示   上一次成功的时间   连接。

如果你过度使用警报:不要。那么你原来的问题可能会变得毫无意义。

答案 2 :(得分:2)

您可以使用以下方式以编程方式关闭其他UIAlertView:

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

您需要在创建时存储对它们的引用才能执行此操作。

答案 3 :(得分:0)

谢谢,伙计们!我为UIAlertView编写了自己的替代品。我将半透明UIViewframe (0, 0, 320, 480)放在一起,以避免用户互动,而我的自定义提醒仍会显示"请等待",并且在此背景视图上方我放置此信息自定义提醒,它只是UIView的基本UIActivityIndicatorView

P.S。不要因为我的英语来判断我,我是俄语

相关问题