UIAlertController作为子视图控制器

时间:2016-01-16 18:21:51

标签: ios swift uiviewcontroller uikit uialertcontroller

为了在我的应用程序中实现更好的自定义,我想将UIAlertController放在UIViewController子类中。警报应该是UIViewController的子代,以提供更大的灵活性。

实现这一目标的最佳方法是什么?

到目前为止,我已尝试将警报添加为子视图控制器。当我想要显示警报时,我会以模态方式显示容器视图控制器。

我还尝试在视图控制器上调用presentViewController(将警报作为参数)。但是,我不确定实现我正在寻找的正确方法是什么。

编辑:这些解决方案都没有像我希望的那样有效,但我不知道这是因为我做错了什么还是因为方法错了。

编辑2 :添加的功能是提供UIKeyCommands,以便更轻松地选择警报选项。我不是UIAlertController的子类,原因有两个:(1)文档声明它不应该是子类,(2)添加关键命令UIAlertController不起作用。

2 个答案:

答案 0 :(得分:1)

您能解释一下这种方法提供的灵活性吗?我并不怀疑它,因为我对iOS开发相对较新,但我无法弄清楚你想要使用子视图控制器实现的目标。

如果您只想从视图控制器中呈现UIAlertController,只需创建警报控制器,对其进行配置,然后使用presentViewController进行显示。

但是,作为一般方法,我会遵循this thread中最常见答案中的建议。它建议使用UIAlertController子类或带有自定义show方法的类别,该方法为警报控制器提供自己的窗口,以便可以“全局”呈现警报。

答案 1 :(得分:0)

我不认为你的问题是绝对清楚的,但也许你想要一个自定义的弹出式视图控制器,而不是警报?那么您可能需要STPopupController之类的东西 - 它可以自定义且易于使用。