2009-04-29 13 views
8

これは愚かな質問かもしれませんが、UIBarButtonItemは複数のビューにまたがってUINavigationControllerで管理されますか?私は多くの場合、同じ右のUIBarButtonItemを共有するビューの進行がありますが、新しいビューをUINavigationControllerにプッシュすると、変更されていなくても毎回ボタンを再定義する必要があります。ほとんどの場合、ある視点から次の視点への目立つ過渡期アニメーションは、まったく同じボタンが一時的にフェードアウトして戻ってくるため、実際に視覚的な変化がないので不要です。 UIButtonを私のUINavigationBarのサブビューとして追加し、このように「右のバーボタン」効果を達成するだけでよいのでしょうか?UINavigationItemの永続的なrightBarButtonItemプロパティ

答えて

14

私たちはアプリでこれを行いました。ユーザーがナビゲートするときに1つのUIViewControllerから別のUIViewControllerにスワップする単一のUIBarButtonItemを作成しました。このトリックは、UINavigationControllerDelegate、navigationController:willShowViewController:animated:メソッドを使用することでした。私たちは発信UIViewControllerのrightBarButtonItemをnilに設定し、着信コントローラのrightBarButtonItemをボタンに設定します。それは管理しなければならない痛みですが、機能します。

+0

恐ろしい!ありがとうございました。私はUINavigationControllerDelegateを調査するのを忘れていました。 – LucasTizma

+0

ありがとうございます!私のために働いた! :) –

+0

ねえ、私はどのように発信UIViewコントローラを取得できますか?それは私が提示されるものだけを得ることができるようだが、現在のものは得られないだろうか? cheers – zanona

1

UIBarButtonItemsは、nib/xibファイル内のスタンドアロンインスタンスとして作成できます。インターフェイスビルダでボタンを構築できないような特別なことがない場合は、ボタンを再利用する必要がある各View ControllerのUINavigationItemのrightBarButtonItemプロパティに接続する必要があります。客観的なcは必要ありません。

+0

こんにちはマット、具体的に例を挙げてください - これはサンプルコードNavBar.xcodeの実装だと思いますが、それに続くすべての問題を抱えています。 (私はそれが正しいとより洗練されたソリューションだと思うので、あなたの答えに投票しました。 – mobibob

関連する問題