0

UINavigationBarXIBフォームにドロップしました。UIButton次に、フォームに(ではなく)をドロップしましたUINavigationBar。タイプをInfoLight(情報記号のように見えるように)に変更しました。

次に、UIButtonをにドラッグしてUINavigationBar、右ボタンに設定しました。ドラッグの結果、タイプがからUIButtonに魔法のように変わります。UIButtonBarItem

UIButtonそもそもにをドラッグしなかったのはなぜUINavigationBarですか?なぜなら、ボタンがそこにあると、InterfaceBuilderはInfoLight何らかの理由でタイプをに変更することを許可しないからです。

隣接する.hファイルで、の宣言を作成しましたIBAction

- (IBAction) btnInfoClick; 

次に、.mファイルに実装を記述しました。

- (IBAction) btnInfoClick {
    // kick off the about screen
    // code follows
}

ナビゲーションバーのボタンをbtnInfoClick関数に接続するにはどうすればよいですか?

それとも私はそれを最初から間違った方法で行っていますか?

ライブラリからナビゲーションバーにボタンを直接ドラッグすると、ファイル所有者アイコンをクリックしてから、btnInfoClickIBActionをボタンにドラッグできることに注意してください。この場合、クリックイベントは正常に発生します。

ただし、最初にボタンを別の場所にドラッグしてからナビゲーションバーにドラッグするシナリオでは、イベントは発生しません。私が間違っていることがわからない。

4

2 に答える 2

1

IBを開き、UIBarButtonItemを選択して、インスペクターで[接続]タブに移動します。

セレクターの右側のドットからAppDelegate /ファイルの所有者(アクションが定義されている所有者)にドラッグし、アクションを選択します。

あなたはすでにそれを試したと思いますが、念のため。アクションが表示されない場合は、アクション定義を次のように調整してみてください。

- (IBAction)btnInfoClick:(id)sender;

プロセスを再試行してください。送信者を実際に指定する必要はないことは知っていますが(少なくともプログラムでは、私がいつも使用している方法)、同じ問題が発生し、送信者パラメーターを追加した後、正しく機能しました。

頑張って、これがうまくいくかどうか教えてください!

于 2009-09-19T08:33:17.927 に答える
0

IBのバグだと思います。しかし、ここで回避策を見つけました。後世のための再投稿:

  1. ビューにボタンを作成します(ナビゲーションバーではありません!)
  2. このボタンをInfoLightに設定します
  3. このボタンのアクションをTouchInsideUpに設定します
  4. ボタンをナビゲーションバーに移動します
于 2009-09-19T08:47:56.243 に答える