2009-03-25 8 views
2

私はフリップするためにいくつかの問題を抱えています。 、問題がある問題の表示を反転する

- (void)loadFlipsideViewController { 
    ProblemViewFlipController *viewController = [[ProblemViewFlipController alloc] initWithNibName:@"ProblemViewFlip" bundle:nil]; 
    self.problemViewFlipController = viewController; 
    [viewController release]; 
} 


- (void) flipView { 

    if (problemViewFlipController == nil) { 
     [self loadFlipsideViewController]; 
    } 

    UIView *mainView = self.view; 
    UIView *flipView = problemViewFlipController.view; 

    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 

    [UIView setAnimationTransition:([mainView superview] ? UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight) forView:self.view cache:YES]; 

    if ([flipView superview]) 
    { 
     [flipView removeFromSuperview]; 
     [self.view addSubview:mainView]; 
    } 
    else 
    { 
     [mainView removeFromSuperview]; 
     [self.view addSubview:flipView]; 
    } 

    [UIView commitAnimations]; 
} 

私はflipViewを呼び出すときに、ビューが空白のビューに置き換えられていることである(私はひっくり返すてるビューで、すなわち何も表示されません):私は私のビューコントローラに次のコードを持っています。

ここには何かがありますか? (私はそこにいると思う!)

答えて

2

肯定的ではありませんが、私はあなたがビューを反転するために 'コントローラ'を使用する必要があると思います。フリップされたビューの1つをコントローラとして使用しているようです。ルートコントローラーを追加するだけで、ビューを切り替えることができます。このような

コードは、ルート・コントローラから動作するはずです:これは、あなたはXCodeのから取得するデフォルトの「ユーティリティ」アプリケーションテンプレートから構成されているように、変数名に基づいて

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; // self.view is the root controller's view 
[mainViewController viewWillAppear:YES]; 
[flipViewController viewWillDisappear:YES]; 
[flipViewController.view removeFromSuperview]; 
[self.view addSubview:mainViewController.view]; 
[flipViewController viewDidDisappear:YES]; 
[mainViewController viewDidAppear:YES]; 
[UIView commitAnimations]; 
+0

これは正しい軌道に乗りました - 私は現在のコントローラのビューとこのコントローラを使用して2つの他のコントローラのビュー間を移動するのではなく、乾杯! – Codebeef

0

、それが見えます。テンプレートプロジェクトがうまく動作していない場合は、あなたが持ってはいけないものを明らかに変更しました:-)

あなたのコントローラーのコンセントの1つは、ビューを参照する必要があります。isn 't。あなたのNibをもう一度チェックし、デバッガでアウトレットの値をチェックしてください。他のすべてが失敗した場合は、テンプレートからもう一度やり直し、どの時点で作業が停止するかを確認します。

関連する問題