我认为这种情况应该是奇怪的,但我对此感到困惑。
我有一个视图让我们说View1,它会显示一个或多个alertviews.Alerts如果不受影响,就会一个堆叠在另一个之上。 这个问题来了。 如果我点击最顶级警报,它应该带我到一个完整的新视图,让我们说View2。确实如此。现在我仍然在View2中显示剩余的警报。我不希望这种情况发生。如何自动关闭从View1创建的待处理警报,这些警报当前正在View2中显示?
真的很感激任何帮助或任何想法..
由于
答案 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
编写了自己的替代品。我将半透明UIView
与frame (0, 0, 320, 480)
放在一起,以避免用户互动,而我的自定义提醒仍会显示"请等待",并且在此背景视图上方我放置此信息自定义提醒,它只是UIView
的基本UIActivityIndicatorView
P.S。不要因为我的英语来判断我,我是俄语