Пользовательский titleView в UINavigationController неправильно анимируется

Я, наверное, здесь что-то делаю не так, потому что это выглядит немного глупо.
Я настраиваю пользовательский titleView (в форме UILabel) на моем UINavigationController, который одинаков на каждой странице. Чтобы облегчить это, я создал функцию в своем делегате приложения для правильного отображения метки. Затем я вызываю эту функцию для любых вложенных представлений сразу после того, как помещаю ее в стек навигации.
Вот код (который, вероятно, имеет больше смысла, чем мое объяснение):

//In MyAppDelegate.m:
- (void)showTitleForNavigationController:(UINavigationController*) navController {
    UILabel *label = [[UILabel alloc] init];
    // set up label attributes
    // ...
    [label sizeToFit]; //without this line my label won't show at all
    [navController.navigationBar.topItem setTitleView:label];
    [label release];
}

// In SomeViewController.m, when pushing another controller onto the stack:
    UIViewController *otherViewController = //initialize other view controller;
    [self.navigationController pushViewController:otherViewController animated:YES];
    [(MyAppDelegate*)[[UIApplication sharedApplication] delegate] showTitleForNavigationController:otherViewController.navigationController];

Моя проблема в том, что когда я помещаю следующий контроллер представления в стек, и новый контроллер плавно скользит по нему, на протяжении всей анимации метка остается в левый верхний угол перед окончательной фиксацией после завершения анимации. Это выглядит действительно странно и некрасиво. Как правильно настроить этикетку, чтобы она плавно переходила из следующего представления? Наверняка мне не хватает чего-то простого ...

8
задан death_au 13 September 2010 в 00:27
поделиться