【发布时间】:2015-07-10 04:29:44
【问题描述】:
我想显示一个弹出菜单而不使用 nib。我不喜欢使用 nib,因为实现一个简单功能的委托很头疼。我成功地将modalPresentationStyle 用作Popover 以将ViewController 显示为Popover,并且它适用于以下代码。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var btnShowPopOver: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func showPopUP(sender: AnyObject) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let popVC = storyboard.instantiateViewControllerWithIdentifier("pop")as! PopViewController
popVC.modalPresentationStyle = UIModalPresentationStyle.Popover
popVC.preferredContentSize = CGSizeMake(320, 240)
popVC.popoverPresentationController!.delegate = self
let popOverController = popVC.popoverPresentationController
popOverController!.sourceView = sender as! UIView // where to stick the bar item in which view
popOverController!.sourceRect = CGRectMake(70,30, 0, 0) //where to stick the bar
popOverController?.permittedArrowDirections = nil
self.presentViewController(popVC, animated: true, completion: nil)
}
}
extension ViewController :UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyleForPresentationController(PC: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}
func popoverPresentationControllerDidDismissPopover(popoverPresentationController: UIPopoverPresentationController) {
var controller = popoverPresentationController.presentedViewController as! PopViewController
println(" this is data from pop view controller \(controller.textField.text)")
}
}
Popover 控制器专供 iPad 设备使用。 尝试在其他设备上创建一个会导致异常。
我在真实设备 iphone-6 上对此进行了测试,它工作正常..我喜欢这个 Popover。
我应该根据苹果文档使用Popover 还是不使用?由于它在 iphone 中运行良好,我的应用会因为以后使用而被拒绝吗?
【问题讨论】:
-
太棒了! :) 它适用于 iPhone 5 和 iPhone 4 吗?
-
是的...我喜欢这个..但是苹果文档说只在 iPad 设备上使用它所以我应该使用它还是不使用它?
-
太好了,您的问题将有助于其他人通过 Swift 语言在 iPhone 中创建弹出框。 (Y)
标签: ios swift uiviewcontroller popup popover