UIPopOverController にはタグ プロパティがありますか?
複数の UIPopOverControllers がありますが、それらをデリゲート メソッドと区別するにはどうすればよいですか?
ありがとう。
UIPopOverController にはタグ プロパティがありますか?
複数の UIPopOverControllers がありますが、それらをデリゲート メソッドと区別するにはどうすればよいですか?
ありがとう。
いいえ、tag
プロパティはビューとバー ボタン アイテムのみにあり、ビュー コントローラーにはありません。
ただし、すべてのUIPopoverViewControllerDelegate
メソッドにはpopoverViewController
変数が渡されます。その変数をポップオーバー コントローラー オブジェクトと比較することで、どれがデリゲート メソッドを呼び出しているかを知ることができます。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
if (popoverController == myFirstPopoverController) {
// do something
}
}
これは、iOS のすべてのデリゲート メソッドに当てはまり、すべてのメソッドが変数をUITableViewDelegate
受け取ることに注意してください。tableView
アップルのドキュメントによると、タグ プロパティはありません。タグ プロパティは、UIPopoverController ではない UIView のサブクラスであることに由来します。実際、UIPopoverController は NSObject から直接継承しています。
デリゲート コールバックが実行されると、コールバックを呼び出した UIPopoverController の正確なインスタンスが渡されます。
これは、次の 2 つのプロトコル メソッドを使用してUIPopoverControllerDelegate ドキュメントで確認できます。
– popoverControllerShouldDismissPopover:
– popoverControllerDidDismissPopover: