*

StoryboardからPopoverを作っても位置合わせコードは必要

公開日: : 最終更新日:2016/04/25 Tips , , ,

これだけだとわかりづらいんですが。
XcodeのStoryboardから、Segueを”Present As Popover”で設定すると、ボタンを押すとかの操作だけでそのボタンからPopoverを表示するようなギミックをコードなしで作ることができます。

このPopoverの矢印の位置がボタン等、アクションを設定したコンポーネントの左上になるのでちょっと見栄えが良くない、ということで結局コードを書く必要に駆られたのでメモ。StackOverFlowでは未回答だったり、「全部コードで書け」とか残念気味な回答しか見当たらなかった・・・

記述するのは、prepareForSegueの部分で、ここでsourceRect、sourceView等のpopoverに必要な設定をしてやることで対応します。
以下の様なコードで、hogehogeButtonをタップすると、hogehogeButtonの中央から矢印が出るpopoverを作ることができます。
(segueの名前)とか、hogehogeViewController、hogehogeButtonなどの部分は表示先のViewControllerやボタン、segueの名前にお消えてやればいいわけです。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"(segueの名前)"]) {
        hogehogeViewController* vc = (hogehogeViewController*)(segue.destinationViewController);
        vc.popoverPresentationController.sourceRect = self.hogehogeButton.bounds;
        vc.popoverPresentationController.sourceView = self.hogehogeButton;
    }
}

関連記事

Bitbucketの画面の日本語化/コミット時に同時プッシュを行う

前回の記事の続きで、Bitbucketの画面の日本語化と、Xcodeでコミットするときに同時にpus

記事を読む

ソースコードからStoryboardにアクセスする

複数のStoryboardを利用して、自分以外のStoryboardに遷移させるような展開をしたい場

記事を読む

iOS9でURLスキームを登録する

私事ですが、iOS8から対応はしたいということで検証用に使っている自分のiPhoneもiOS8でがん

記事を読む

Xcode5.1のInterfaceBuilderにおける地味な変更点

iOS7.1に合わせてXcode5.1がリリースされました Xcode Release N

記事を読む

iPadのUIModalPresentationFormSheetでキーボードが閉じない

iPadでUIModalPresentationFormSheet(全画面ではなく、中央にフロートし

記事を読む

メソッドの呼び出し元を調べる

特定のメソッドに関して、そのメソッドをコールしているメソッド群を調べるための手順。 (1)調べたい

記事を読む

UIButtonのタイトル変更時のチラつき抑制

久しぶりにXcode+Objective-Cでアプリを作っていたら、UIButtonのタイトルを動的

記事を読む

CoreDataのソートとsectionNameKeyPathの関係

CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam

記事を読む

iOS7でカメラ撮影時のステータスバーを消す

UIImagePickerControllerをカメラモードで表示するとステータスバーがカメラの一番

記事を読む

UICollectionViewが画面回転した時にレイアウトが崩れた時の対応

UICollectionViewCellのサイズを、内容に合わせて動的に変えた時に起こる問題に関して

記事を読む

Xcode10からのimage literal / color literalの指定方法

アセットにあるUIImageの直接指定が可能なImage litera

Xcode11でのバージョン番号の取得方法

Xcode11になってバージョン番号をスクリプトから得て自動で更新する

GoogleスプレッドシートからCSVにエクスポートしたデータを得る方法

情報がない中さんざ苦労しましたが、Googleスプレッドシート(の最初

画面回転をしたあとに、UITextViewの先頭を表示する

回転によりサイズが可変するUITextViewで、縦向き(ポートレイト

NXDrawKitを導入してみる

ACEDrawingViewがObj-Cで書かれていて、いまいちメンテ

→もっと見る

    PAGE TOP ↑