Swift - 如何在 UIAlertController 中放置页面视图?

Swift - How do I place a page-view within a UIAlertController?

我正在使用 Swift 3, Xcode 8.2.

我有一个应用程序,用户可以在其中启动 iPhone 相机,然后我给他们一个弹出窗口,其中包含有关如何拍摄好照片的说明。我希望有一种方法可以在 UIAlertController 中创建页面。我快速勾画了我想要实现的目标。

代码明智,我不确定该怎么做:

func displayInstructions() {

    let insController = UIAlertController(title: "Instructions", message: "Step 1: Do this.", preferredStyle: .alert)

    let actionDone = UIAlertAction(title: "OK", style: .cancel) { (action:UIAlertAction) in
        //This is called when the user presses the cancel button.
        print("You've pressed the done button");
    }


    //Add the buttons
    errorController.addAction(actionDone)

    // Some way to addSubviews here??  
    let pageViewController: UIPageViewController
    insController.addSubview(pageViewController)

    //Present the instruction controller
    self.present(insController, animated: true, completion: nil)
}

如有任何帮助,我们将不胜感激。谢谢!

UIAlertController 上有一个 属性,没有在 public API 中做广告,但似乎可以使用,而且无需通过应用商店审核。因此,使用 KVC,您可以设置警报控制器的 contentViewController

let pageViewController: UIPageViewController

// configure pageViewController...
insController.setValue(pageViewController, forKey: "contentViewController")

您还可以通过在其上设置 preferredContentSize.height 来设置 contentViewController 的大小

pageViewController.preferredContentSize.height = 180

这是空页面视图控制器的结果