2011-10-19 11 views
0

私はUIToolBarの上部に3つのボタンとUIViewを持つUIViewControllerを持っています。これらのボタンの内側にタッチすると、コントローラのビューを変更する必要があります。私のポプスを得るために私は何ができますか?前もって感謝します。UIViewControllerでのビューの変更

答えて

2

あなたはおそらく、ビュー・スタックを制御するためにUINavigationControllerのようなものを使用して、あなたのボタン(s)はTouch Up Insideアクションのためのこれらの方法のいずれかを呼び出す持ちたい:

  • pushViewController:animated:
  • popViewControllerAnimated:
  • popToRootViewControllerAnimated:
  • popToViewController:animated:

ここで調べると良いuinavigationcontroller-tutorialです。

2

設定したアクションごとに、このような処理を行う必要があります。現在のViewControllerの.hファイルで

は:

#import "OtherViewController.h" 

@interface MyViewController : UIViewController 
{ 
    OtherViewController *otherViewController; 
} 

@property(nonatomic, retain)IBOutlet OtherViewController *otherViewController; 

は、その後、現在のViewControllerの.mファイルには、各IBActionのために以下を追加します(内部のタッチアップ)する必要があります。 .mファイルの先頭に追加で

:次に

@synthesize otherViewController; 

IBActionを作成し、他のビューを表示するには、次のコード行を置く:あなたができるあなたのotherViewController

[self presentModalViewController:otherViewController animated:NO]; 

[self dismissModalViewControllerAnimated:NO]; 

注:必要なものは次のとおりです。これを行うには、表示するそれぞれのビューのInterface BuilderでUIViewControllerを作成します。アイデンティティ・インスペクタに入り、クラスをOtherViewControllerに設定する必要があります。 IBOutletを通常通りOtherViewControllerにリンクする必要があります。

上記のすべてをカバーするYouTube video tutorialがあります。これは簡単に始めることができます。

+0

ポストに感謝、私はもう少し具体的でなければならないと思う。私は他のuiviewcontrollerを使いたくありません。私はちょうどその中に3つのボタンとツールバーの下にuiviewとツールバーを持っている1つのuiviewcontrollerが必要です、このuiviewは、どのボタンがビューを押されたかに応じて含まれます。したがって、uiviewには、異なる瞬間に3つの異なるuiviewが含まれます。 – luisjd

+0

私がしたのは、独自のコントロールを含む3つの異なるUIviewを作成することでした。次にプロパティツールバーとビューコンテナを持つUIコントロール。ViewdidLoad()メソッドでは、私はuiviewxxxxを作成し、次にメイドviewcontroller = uiviewxxxx;最初のビューのインスタンスを作成し、viewcontroller = firstviewにしました。 uiviewcontrollerに表示する。私は3つのビューを切り替えるには、ボタンtouchupinsideメソッドで何ができますか?前もって感謝します。 – luisjd

2

UiViewController viewプロパティは、表示している基本ビューです。それは設定することができます(別のものに置き換えられます)。したがって、ViewControllerのビューオブジェクトを、作成した別のビューに置き換えます。

UIView * customView = [[[UIView alloc] initWIthFrame:viewFrame] autorelease]; 
[self setView:customView]; 

ここで、自己は現在のviewControllerを表します。

関連する問題