0

ViewControllerのアプリにはボタンが1つあり、クリックするとポップアップビューを表示して、ユーザーがアドレスのリストから選択できるようにする必要があります。

私はViewController次のように実装しました:

@interface WelcomeViewController : UIViewController<UIPickerViewDelegate, UIPickerViewDataSource, UIPopoverControllerDelegate>

そして、ピッカーに必要なデリゲート関数を実装しました。ポップアップが表示さUIPickerViewれ、アドレスが正しく入力された状態でポップアップが表示されます。フレームの外側を選択すると、ポップアップも消えます。そのため、パーツは正しく機能しているように見えます。

ただし、ピッカーはピックに応答しません(何もしません!)-そしてデバッガーでは、didSelectRowが呼び出されていないことがわかります。

思いつく限りのことをやってみました!どんな助けやアドバイスもいただければ幸いです!

9/24更新:これは機能しましたが、Popover ViewControllerを使用して犠牲にする必要があったため、理想的なソリューションではありません。私は次のようにそれをしました:

  1. アドレスのUIPickerViewを作成し、WelcomeViewControllerのサブビューとして追加しました
  2. WelcomeViewControllerに次のUIPickerViewDelegate関数を実装しました-numberOfComponentsInPickerView、numberOfRowsInComponent、didSelectRow、titleforRow、およびピッカービューのデリゲートプロパティとデータソースプロパティをself(つまりWelcomeViewController)に設定します

これは現在機能していますが、この実装の欠点は、ピッカービューのフレームの外側を選択してもアドレスピッカーが消えないことです(これは、popoverviewcontrollerの内部にないためだと思います)。ユーザーは次のアクションを実行します。背景全体が1つの大きなボタンの一部であるStackoverflowのより良い回避策について読んだことがあります-ポップアップ内にピッカーを入れる方法が見つからない場合は、それに頼ることができます)

4

1 に答える 1

1

まだ設定していない場合は、ピッカーデリゲートプロパティをWelcomeViewControllerのインスタンスに設定します

于 2012-09-24T00:43:11.053 に答える