1

基本的にビューをあるビューから別のビューに回転させる「スイッチャー」である UIViewController があります。

私が移行しようとしているビューが、UITableViewController を保持する UIViewController であることを除いて、すべてうまく機能します。何らかの理由で、アニメーションが「反転」すると、ナビゲーション バーが非表示になり、アニメーションが完了するとナビゲーション バーが表示されます。

本当に見栄えがよくないので、なぜこれが表示されるのか、どうすれば修正できるのか誰か知っているのだろうかと思っていました。

ありがとう、

--d

編集: リクエストによりいくつかのコードを追加!

Switcher viewDidLoad メソッド - 現在、両方の ViewController を初期化しています。

[super viewDidLoad];

LogoView *logoController = [[LogoView alloc] init];
self.logoView = logoController;
[self.view insertSubview:logoView.view atIndex:0];
[logoController release];

MainController *vController = [[MainController alloc] init];
self.controller = vController;
[vController release];

    switchTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(switchViews) userInfo:nil repeats:NO];

Switcher switchViews メソッド

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

if (self.controller.view.superview == nil)
{
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
    [controller viewWillAppear:YES];
    [logoView viewWillDisappear:YES];

    [logoView.view removeFromSuperview];
    [self.view insertSubview:controller.view atIndex:0];
    [logoView viewDidDisappear:YES];
    [controller viewDidAppear:YES];
}

[UIView commitAnimations];

MainController の viewDidLoad メソッド

CGRect frame = CGRectMake(0, 0, 320, 410);

FirstLevelController *controller = [[FirstLevelController alloc] init];

navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.view.frame = frame;
navController.navigationBar.tintColor = [UIColor blackColor];

[controller release];

[self.view addSubview:navController.view];

FirstLevelController 内で、テーブル ビューにアイテムを追加するだけです... navController.title = @"Home" を追加しようとしましたが、テキストのない黒いナビゲーション バーも表示されません...それは単なる大きな空のスペースです.

助けていただければ幸いです。

4

1 に答える 1

0

ハッ!アニメーションの「キャッシュ」を YES から NO に変更したら直りました!わーい!

于 2010-07-05T12:13:37.610 に答える