2011-07-30 1 views
0

私はUIViewControllerを持っていますが、私のアプリでは2つの異なるビューにプッシュされています。同じUIViewControllerのUIButtonを変更するには?

私は一度モーダルビューですので、navbarボタンをDoneに設定して、ビューを閉じます。

私のアプリで別の時間に、この同じビューがプッシュされますが、モーダルではないため、このボタンを表示したくありません。私はそれを押すときにこれを追加しようとしましたが、運がありません。

self.navigationItem.rightBarButtonItem.enabled = NO;

答えて

1

シンプルかつ効果的に設定しているかどうかの親ビューコントローラを確認することができます -

self.navigationItem.rightBarButtonItem = nil; 

編集:

これを押しているときにこれをどのように追加できますか?これが表示されていることを確認したいviewControllerのviewWillAppearまたはviewDidLoadに追加してください。

特定の状態を確認できます。

  1. ビュー1からプッシュされている場合は、それをゼロにすることができます。
  2. ビュー2からモーダルで表示されている場合は、表示させることができます。

このためには、viewControllersを互いに通信させる必要があります。そのためには、NSUserDefaultsを使用し、キーの整数を設定する必要があります。

論理的に2つの異なる整数を割り当てて、rightBarButtonItemの表示/非表示の条件として使用できます。

Good Luck。

+0

ボタンを表示したくないクラスからビューをプッシュするときにこれを追加しようとしましたが、まだ表示されています。 – Jon

+0

チェックを編集..... – Legolas

2

あなたはそれがmodalViewControllerプロパティは

if (self.parentViewController.modalViewController == self) 
{ 
    // add button 
} 
+0

何らかの理由で、モーダルであるビューでも表示されません。それはモーダルなビューですが、hierchyでは3つのビューが表示されます。 – Jon