2011-08-22 22 views
0

ビューを削除できません。私はaddsubviewメソッドを使用してビューを追加していますが、私がRemoveFromSuperViewを使用するとビューを追加しています。removeFromSuperviewメソッドを使用してビューを削除できません

//ここで私は、ログインボタンからビューを追加してい

medicalViewObject=[[MedicalInfoViewController alloc] initWithNibName:@"MedicalInfoViewController" bundle:nil]; 
    [self.view addSubview:medicalViewObject.view]; 

//ここであなたはあなたがどんなビューコントローラ言っている[self.view removeFromSuperview];呼び出すときに私は別のViewController

-(void)BackToMainView 
{ 
    [self.view removeFromSuperview]; 
} 

答えて

2

間違ったビューオブジェクトにremoveFromSuperviewを送信しているため動作しません。

[medicalViewObject.view removeFromSuperview]; 

はEDIT:これは、何が必要です

ご質問はビューを持っていることを示唆している(あなたがあなたの質問に、このビューの名前が含まれていなかったので、私は単にMAINVIEWそれを呼びます)とmedicalviewObjectというサブビューをMainViewに追加します。また、removeFromSuperview関数を実行するメソッド呼び出し "BackToMainView"もあります。あなたの質問は、あなたのmedicalViewObject内のいくつかのユーザーアクション(ボタンプレスなど)は、 "BackToMainView"メソッドを呼び出すことになっていることを示唆しています。

これがすべて正しい場合は、私の答えは正しいです。しかし、あなたのコメントに基づいて、あなたのmedicalViewObjectにデリゲートプロトコルを実装し、 "MainView"にプロトコルを適用させる必要があるように思えます。あなたのmedicalViewObjectでのデリゲートのあなたの宣言で

、あなたはこのようなメソッド呼び出しを持っている必要があります:

-(void)backButtonWasPressed; 

とあなたのMAINVIEWの実装では、それは次のようになります。

-(void)backButtonWasPressed 
{ 
    [medicalViewObject.view removeFromSuperview]; 
} 

これで、メインビュー(ボタンやその他のオブジェクトのいずれか)に戻るためにmedicalViewObjectで使用しているユーザー操作は何でも、以下を呼び出す必要があります:

[delegate backButtonWasPressed]; 

あなたの状況によっては少し違って見えるかもしれませんが、これはあなたがしようとしていることを達成するためのかなり一般的な方法です。私はこれが役立つことを願っています

+0

私はMedicalInfoViewControllerビューを意味する別のビューにナビゲートしています...私はそのview.howから戻ってくる必要があります。私はそのMedicalInfoViewControllerのオブジェクトを作成する必要があります。 – sharanu

+0

@sharanu編集をご覧ください。 – EmphaticArmPump

1

でRemoveFromSuperViewを書いています自分のビューを削除する。まったく同じMedicalInfoViewController内からその行を呼び出すか、外部からmedicalViewObjectにそのビューを削除するように伝える必要があります[medicalViewObject.view removeFromSuperview];

+0

私はMedicalInfoViewControllerビューを意味する別のビューにナビゲートしています...私はそのview.howから戻ってくる必要があります。私はそのMedicalInfoViewControllerのオブジェクトを作成する必要があります。 – sharanu

+0

このコマンドを元のMedicalInfoViewControllerに何らかの形で送信する必要があります。つまり、メッセージを送信できるように、参照を保持する必要があります。 – Dancreek

関連する問題