2
のために私に間違ったフレームを与えるUIBarButtonItem私は、ラベル管理と左の隅に<code>UIBarButtomItem</code>とツールバーを持ってpopoverPresentationController
私はそれをタップしたときにポップオーバーを表示する必要があるが、それはに表示されます。間違った場所、それが画面の左上に表示されます。
これはポップオーバーを開くための機能です。
空のスナップショットで結果をレンダリングされていないビューをスナップショット:私は管理バーボタンをタッチすると
// this IBAction is assigned only to the Admin bar button item @IBAction func openAdmin(sender: UIBarButtonItem) { let alertController = UIAlertController(title: nil, message: "Elige una opción", preferredStyle: .ActionSheet) // action button initializations... ... ... let barButtonItemSize = sender.valueForKey("view") alertController.popoverPresentationController?.sourceView = self.view alertController.popoverPresentationController?.sourceRect = barButtonItemSize!.frame presentViewController(alertController, animated: true, completion: nil) }
はまた、私は、コンソール上でこの警告が表示されます。スナップショットやスナップショットを表示する前に少なくとも1回レンダリングされていることを確認する
私は間違っていますか?または管理者のトップにポップオーバーを表示するには何が必要ですか?
おかげで
を交換してください。送信者が 'UIView'タイプではないので、送信者をsourceViewに割り当てることができません。 – pableiros
次に、 'alertController.popoverPresentationController?.barButtonItem = sender'を設定しようとしています。[this SO post](http://stackoverflow.com/questions/36830807/how-to-implement-uialertcontroller-as-popoverwith-arrow-direction- up-in-a-uiba) – Lion
それは動作します!ありがとうございました!!しかし、私はまだコンソール上で警告を出しています。レンダリングされていないビューをスナップショットすると、空のスナップショットが作成されます。画面の更新後にスナップショットまたはスナップショットを作成する前に、ビューが少なくとも1回レンダリングされていることを確認してください。 – pableiros