0

アプリ全体で、さまざまな色のナビゲーション バーがあります。また、横向きで表示されるグラフがいくつかありますが、アプリの残りの部分は縦向きです。一部のビューでは、タブ バーを非表示にします。

viewDidLoad と viewWillAppear でナビゲーション バーの色を変更します。

私の問題は、ビュー間の遷移効果が奇妙に見えることです。ナビゲーション バーの色が異なる場合、色の変化が速すぎて最初の画面が変化します。または、タブ バーが削除されていることがわかります。

私は何を間違っていますか?

ここに私が使用するいくつかの典型的なコードがあります。

CBViewController *nextController = [[CBViewController alloc] 
      initWithNibName:@"CBView" bundle:nil];
nextController.title = @"CB";   
nextController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:nextController animated:YES];

私は標準的な効果を探しているわけではありませんが、奇妙に見えないものを探しています。

ただし、最初のビューから 2 番目のビューまで、スライド効果が見られました。

4

1 に答える 1

-1

あなたのコメントの後、私はあなたが何を探しているのかまだわかりません.私のiTunesではナビゲーションバーの色が変わっていません. とにかく、次のコードでは、新しいコントローラーに移行するときにナビゲーション バーの色が変わります。プッシュ アニメーションはわずか約 0.3 秒であり、NSTimer は約 0.05 秒の解像度に制限されているため、ある色から次の色 (緑から黄色) に移行するために 6 つのステップを実行しました。

-(IBAction)pushWithColorChange:(id)sender {
    UIViewController *nextController = [self.storyboard instantiateViewControllerWithIdentifier:@"Yellow"];
    [self.navigationController pushViewController:nextController animated:YES];
    [NSTimer scheduledTimerWithTimeInterval:.05 target:self selector:@selector(changeColor:) userInfo:nil repeats:YES];
}

-(void)changeColor:(NSTimer *) timer {
    static float i=0.03;
    self.navigationController.navigationBar.tintColor = [UIColor colorWithHue:.34 - i saturation:.5 brightness:.7 alpha:1];
    i += 0.03;
    if (i > .18) {
        [timer invalidate];
    }
}
于 2012-12-30T17:05:45.083 に答える