【问题标题】:Need action to happen after all UIAlertControllers dismissed在所有 UIAlertController 被解雇后需要采取行动
【发布时间】:2019-11-05 04:53:40
【问题描述】:

每当用户在其上按下按钮时(即当它被关闭时),我需要应用程序中的每个 UIAlertController 执行特定操作。到目前为止,我能想到的唯一方法是将此操作单独编码到每个按钮处理程序中,如下所示:

UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action)
{
    [self doSomeAction];
}];

UIAlertController 没有代表。如何在每次解除警报时完成相同的操作,而不必一遍又一遍地重复相同的代码?

【问题讨论】:

  • 您的意思是,例如,您是否希望应用中的大多数警报在点击“取消”时执行完全相同的操作?您应该edit您的问题并提供更具体的细节或您要解决的问题的示例。
  • @rmaddy 已更新。是的,我希望应用程序中的每个警报在被解雇时都做一件特定的事情。因此,必须为每个按钮操作添加它,因为 UIAlert 上的任何按钮都会关闭它。

标签: ios objective-c uiviewcontroller uialertcontroller


【解决方案1】:

最简单的解决方案是继承UIAlertController。然后覆盖viewDidDisappear。为那里的每个警报添加您希望发生的任何“特定事情”。现在,只要您希望完成此自定义行为,请使用您的自定义警报控制器类。

【讨论】:

  • 在 Apple 文档中,它说不要继承 UIAlertController。你还认为它会安全吗?
  • 绝对安全。只需避免尝试修改警报的 UI。创建类只需要几分钟。然后在一两个地方试一试,确认它按预期工作,然后再承诺在任何地方使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2021-10-26
  • 2020-03-28
  • 2015-10-07
相关资源
最近更新 更多