1

UINavigationController にカスタム UINavigationBar を設定しています。新しいビューコントローラーがプッシュされ、NavigationController からポップされたときに、NavigationBar がアニメーション化されないようにしたいと考えています。通常、UINavigationBar は、プッシュ中はタイトルと戻るボタンを右から左にアニメーション化し、ポップ中は左から右にアニメーション化します。NavigationBar を多かれ少なかれ静的に保ちながら、この機能を停止したいと思います。

カスタム UINavigationBar で以下をオーバーライドすることで、ポップ アニメーションを防ぐことができます。

-(UINavigationItem *)popNavigationItemAnimated:(BOOL)animated{
    return [super popNavigationItemAnimated:NO];
}

ただし、オーバーライドすると

- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated

新しいviewcontrollerをNavigationControllerにプッシュするたびに、UINavigationBarは引き続きアニメーション化されます。

編集:プッシュまたはポップされたviewControllerをアニメーション化またはアニメーション化する必要があります。停止する必要があるのは NavigationBar のみです。

4

1 に答える 1

0

これは私にとってはうまくいきます - UINavigationBar でこのメソッドをオーバーライドします:

- (void)pushNavigationItem:(UINavigationItem *)item {
    NSMutableArray* items = [[self items] mutableCopy];
    [items addObject:item];
    self.items = items;
}
于 2015-10-27T20:30:58.857 に答える