Ваша проблема в том, что если вы используете контроллер навигации, заголовок каждой страницы будет перекрывать вашу пользовательскую панель навигации. Если ваша навигационная панель содержит логотип или название вашего приложения, это явно недопустимо.
Вы можете установить заголовок каждого вида в вашем стеке навигации пустым, но некоторые представления заставляют заголовок, с которым вы ничего не можете сделать (например, средство выбора фотографий). Поэтому вам может потребоваться создать альтернативное изображение панели навигации того же цвета или дизайна, что и панель навигации вашего логотипа, но с пустой областью, чтобы освободить место для наложенных заголовков.
Чтобы переключать изображения navbar по желанию, добавьте в делегат приложения свойство, содержащее имя изображения navbar, и замените первую строку первого примера выше на эти два:
YourAppDelegate* theApp = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];
UIImage* image = [UIImage imageNamed:theApp.navBarName];
Затем в первом контроллере представления, который вы поместите в стек навигации, сделайте что-то вроде этого:
- (void)viewWillAppear:(BOOL)animated
{
YourAppDelegate* theApp = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];
theApp.navBarName = @"navBar_plain";
}
Затем в контроллере корневого представления сделайте то же самое, но укажите свое изображение логотипа с логотипом, которое будет восстановлено, когда пользователь вернется к нему без конфликтующего заголовка.