【问题标题】:UIAlertController as Child View ControllerUIAlertController 作为子视图控制器
【发布时间】:2016-01-16 18:21:50
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: ios swift uiviewcontroller uikit uialertcontroller


    【解决方案1】:

    您能否解释一下这种方法提供了什么样的灵活性?我并不怀疑它确实如此,因为我对 iOS 开发相对较新,但我不太清楚你想要使用子视图控制器实现什么。

    如果您只是想从您的视图控制器中显示一个 UIAlertController,只需创建警报控制器,配置它,然后使用presentViewController 来显示它。

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

    【讨论】:

    • 我在第二次编辑中添加了更多信息。我会查看链接的线程并回复您。谢谢!
    • 事实证明,实现这一点的最佳方法是从容器视图控制器调用presentViewController,并让这个VC覆盖当前上下文。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-12-06
      相关资源
      最近更新 更多