私ViewController
のアプリにはボタンが1つあり、クリックするとポップアップビューを表示して、ユーザーがアドレスのリストから選択できるようにする必要があります。
私はViewController
次のように実装しました:
@interface WelcomeViewController : UIViewController<UIPickerViewDelegate, UIPickerViewDataSource, UIPopoverControllerDelegate>
そして、ピッカーに必要なデリゲート関数を実装しました。ポップアップが表示さUIPickerView
れ、アドレスが正しく入力された状態でポップアップが表示されます。フレームの外側を選択すると、ポップアップも消えます。そのため、パーツは正しく機能しているように見えます。
ただし、ピッカーはピックに応答しません(何もしません!)-そしてデバッガーでは、didSelectRowが呼び出されていないことがわかります。
思いつく限りのことをやってみました!どんな助けやアドバイスもいただければ幸いです!
9/24更新:これは機能しましたが、Popover ViewControllerを使用して犠牲にする必要があったため、理想的なソリューションではありません。私は次のようにそれをしました:
- アドレスのUIPickerViewを作成し、WelcomeViewControllerのサブビューとして追加しました
- WelcomeViewControllerに次のUIPickerViewDelegate関数を実装しました-numberOfComponentsInPickerView、numberOfRowsInComponent、didSelectRow、titleforRow、およびピッカービューのデリゲートプロパティとデータソースプロパティをself(つまりWelcomeViewController)に設定します
これは現在機能していますが、この実装の欠点は、ピッカービューのフレームの外側を選択してもアドレスピッカーが消えないことです(これは、popoverviewcontrollerの内部にないためだと思います)。ユーザーは次のアクションを実行します。背景全体が1つの大きなボタンの一部であるStackoverflowのより良い回避策について読んだことがあります-ポップアップ内にピッカーを入れる方法が見つからない場合は、それに頼ることができます)