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

时间:2017-03-01 02:07:28

标签: ios swift swift3 uipageviewcontroller uialertcontroller

我使用的是Swift 3,Xcode 8.2。

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

enter image description here

代码方面,我不知道该怎么做:

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)
}

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

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

let pageViewController: UIPageViewController

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

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

pageViewController.preferredContentSize.height = 180

这是使用空页面视图控制器

的结果

UIAlertController with nested page view controller