2012-02-02 3 views
0

私のアプリでは、UIViewアニメーションを使用してアニメーションでビューを切り替えると、ビューが適切にスライドしてすべてが機能するため、ビューを切り替えるときに初めて正常に機能します。しかし、元のビューに戻って新しいビューに戻ると、何も表示されません。ビューは黒ですが、私のメソッドが呼び出されていることがわかります。ビューを切り替えてもビューが2回目に表示されませんか?

私のコードは以下のとおりですが、誰かが間違っているものを見ていますか?

-(void)changeView2ToView3 { 
    [view2.view.superview addSubview:view3.view]; 
    [view3.view setFrame:CGRectMake(0, kHeight, kWidth, kHeight)]; 
    [UIView animateWithDuration:0.75 
        animations:^{ 
         [view3.view setFrame:CGRectMake(0, 0, kWidth, kHeight)]; 
        } 
        completion:^(BOOL finished){ 
         [view2.view removeFromSuperview]; 
        }]; 
} 

kHeightおよびkWidthは、画面の高さおよび幅であり、決して0またはゼロではありません。

ありがとう!

答えて

0

初めて、view2.viewのスーパービューはnilでなければなりません。したがって、スーパービューを保存するための変数を設定する必要があります。

[view2.view removeFromSuperview]; 
// now view2.view.superview == nil; 
+0

スーパービューをivarに正しく設定する方法を教えてください。それから私はあなたの答えを受け入れて投票します! –

+0

Btwそれは無しではありません、私はNSLogsでそれを証明しました! –

関連する問題