1

私の iPhone アプリはタブ バー ベースですが、タブ バー コントローラー ビューを完全に切り替えて、ウィンドウ内のすべてを別の XIB ファイルのビューに置き換えるアクションを起動したいと考えています。これはアプリケーションデリゲートで行う必要があると思いますが (これは「チーフ」クラスであるため)、そこからの正しい方法がわかりません。私がやろうとしていることを誰かが知っていますか?

前もって感謝します!

4

3 に答える 3

0

みんなありがとう!ニック、それは私が必要としていたコードです。誰かがこれを便利だと思った場合に備えて、アニメーションを追加してビューを切り替えるために使用したコードを次に示します。これをアプリ デリゲートのメソッドに入れるだけです。

AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES];
[[[window subviews] objectAtIndex:0] removeFromSuperview];
[window addSubview:[anotherViewController view]];
[UIView commitAnimations];
于 2009-09-25T18:52:26.637 に答える
0

タブ ビュー コントローラには、 などのアクション メソッドがあり、そのメソッドはなど-(IBAction)onChangeViewの のメソッドを呼び出します。[[UIApplication sharedApplicaton] delegate]-(void)toggleScreen

-(IBAction)onChangeView:(id)sender
{
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    [delegate toggleScreen];
}

次に、アプリのデリゲート メソッドで次のようにします。

-(void)toggleScreen
{
    [[[window subviews] objectAtIndex:0] removeFromSuperview];
    [window addSubview:otherView];
}

ただし、トランジションが必要な場合は異なる場合があります。

于 2009-09-25T04:35:24.303 に答える
0

アプリのデリゲートまでずっと行く必要はありません。既存のビューとコントローラーを簡単に削除し、新しいビューを追加できます。それは本当にあなたが何をしているかに依存します。たとえば、既存のビュー構造を一時的に脇に置いて、まったく別のものを使用し、必要に応じて元のスキームに戻すことができます (ただし、ユーザー エクスペリエンスについてはわかりません)。

私のアプリでは、通常、ルート ビュー コントローラーを使用するか、メイン ウィンドウを使用してビューの追加と削除を行います。一部のビューは、他のビューを自分自身に追加したり、別のビューをルートビューまたはメイン ウィンドウに移行したりします。一部のビューは閉じて、下のビューが表示されます。オプションは無限であり、ニーズとアーキテクチャによって異なります。

于 2009-09-25T04:52:49.820 に答える