В viewDidLoad
У меня есть UINavigationBar с пользовательским фоном, реализованным следующим образом:
[self.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:nav_bg_image]] atIndex:100];
На вершине стека (назовите его RVC
) У меня есть следующий полный код:
UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:navbar_image_logo]];
[self.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:nav_bg_image]] atIndex:100];
[self.navigationItem setTitleView:logoView];
[logoView release];
Это прекрасно работает.Однако, когда я помещаю новый VC
в стек и использую тот же код в viewDidLoad
UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:navbar_image_logo]];
[self.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:nav_bg_image]] atIndex:1];
[self.navigationItem setTitleView:logoView];
[logoView release];
UIBarButtonItem *hButton = [[UIBarButtonItem alloc] initWithTitle:@"Filters" style:UIBarButtonItemStylePlain target:self action:@selector(filtersAction)];
self.navigationItem.rightBarButtonItem = hButton;
[hButton release];
, не появляется ни кнопка «Фильтры», ни titleView imageView.Однако я знаю, что кнопка фильтров была добавлена в пользовательский интерфейс, потому что, если я щелкну в области, которая должна появиться, действие будет выполнено.
Кроме того, когда я развернусь до подробного вида DVC
и возвращайтесь, внезапно появляется titleView (logoView)!
Я подозреваю, что это какая-то проблема с памятью, но я не смог ее решить.