2016-01-16 36 views
1

为了在我的应用程序中实现更好的自定义,我想将UIAlertController放在UIViewController子类中。警报应该是UIViewController的一个子节点,以提供更大的灵活性。UIAlertController作为子视图控制器

达到此目的的最佳方法是什么?

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

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

编辑:这些解决方案都没有按照我的希望工作,但我不知道是因为我做错了什么或者是因为方法错误。

编辑2:增加的功能是提供UIKeyCommands,使选择警报选项更容易。我没有继承UIAlertController的原因有两个:(1)文档指出它不应该被分类,并且(2)添加键盘命令UIAlertController不起作用。

回答

1

您能否解释一下这种方法提供的灵活性?我并不怀疑它的确如此,因为我对iOS开发相对比较陌生,但我无法完全弄清楚使用子视图控制器要实现的目标。

如果您只是想从您的视图控制器提供UIAlertController,只需创建警报控制器,配置它并使用presentViewController来显示它。

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

+0

我在第二次编辑中添加了更多信息。我会查看链接的线索并回复你。谢谢! – erdekhayser

+0

事实证明,实现这一目标的最佳方法是从容器视图控制器调用presentViewController,并在当前上下文中使用此VC。 – erdekhayser

0

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

相关问题