Вы можете использовать popoverPresentationController
, чтобы получить popover
на любом из ваших textFields
.
1. Создайте UIViewController
с UILabel
внутри него.
class PopoverVC: UIViewController {
@IBOutlet weak var textLabel: UILabel!
var text: String?
override func viewDidLoad() {
super.viewDidLoad()
self.textLabel.text = self.text
}
}
2. В вас ViewController
создайте экземпляр PopoverVC
всякий раз, когда вы хотите представить message
. Представьте его как popoverPresentationController
и передайте экземпляр textField
, над которым вы хотите представить message
, т.е.
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {
@IBOutlet weak var textField: UITextField!
@IBAction func onTapButton(_ sender: UIButton) {
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopoverVC") as! PopoverVC
controller.text = "Enter valid Mobile Number"
controller.modalPresentationStyle = .popover
controller.preferredContentSize = CGSize(width: 300 , height: 70)
let popover = controller.popoverPresentationController
popover?.delegate = self
popover?.permittedArrowDirections = .down
popover?.sourceView = self.textField
popover?.sourceRect = self.textField.bounds
self.present(controller, animated: true, completion: nil)
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
}
Выход: