如何制作 UIPopoverController (Swift)?

How to make UIPopoverController (Swift)?

正在寻找基于 swift 的教程。我对这个问题的解答如下

希望对你有帮助

我不会为通过你提供的 link 中的付费专区而付费,但你正在寻找 UIPopoverController

我也不打算在这里写教程——有很多可用的教程。在这个类似的问题中给出了创建和使用 UIPopoverController 的简短示例:UIPopoverController, Xcode 6, IOS 8 using Swift

* 更新的答案 *

class ViewController: UIViewController, UIPopoverControllerDelegate, UIPopoverPresentationControllerDelegate {

    @IBOutlet weak var RoutineLabel: UIButton!

    @IBAction func RoutineButton(sender: AnyObject) {

        switch SDiPhoneVersion.deviceVersion() {
        case DeviceVersion.iPad1, DeviceVersion.iPad2, DeviceVersion.iPadMini, DeviceVersion.iPad3, DeviceVersion.iPad4, DeviceVersion.iPadAir, DeviceVersion.iPadMiniRetina:

            var popoverViewController = self.storyboard?.instantiateViewControllerWithIdentifier("RoutinesTableViewController") as UITableViewController
            popoverViewController.modalPresentationStyle = .Popover
            popoverViewController.preferredContentSize   = CGSizeMake(300, 300)

            let popoverPresentationViewController = popoverViewController.popoverPresentationController

            popoverPresentationViewController?.permittedArrowDirections = UIPopoverArrowDirection.Up
            popoverPresentationViewController?.delegate = self
            popoverPresentationViewController?.sourceView = self.RoutineLabel
            popoverPresentationViewController?.sourceRect = CGRectMake(RoutineLabel.frame.width / 2, RoutineLabel.frame.height,0,0)

            presentViewController(popoverViewController, animated: true, completion: nil)


        default:

            println("iPhones")

        }

    }
}

备注:

  • 我的 PopPoverViewController 是一个 UITableViewController
  • 我使用SDiPhoneVersion.deviceVersion检查设备版本
  • 我用一个按钮触发它
  • 我让弹出窗口的开始取决于 RoutineLabel.frame