2014-01-22 2 views
3

У меня есть приложение iOS7 на основе NavigationController, на этом я хочу скрыть текст кнопки назад, который отображается вместе с шевроном. Есть ли выход из этого? Я попытался установить пустую строку на заголовок кнопки назад, попробовал пустой заголовок на предыдущем представлении, также кажется, что если он находит пустой заголовок, он заменяет текст «Назад».Как скрыть название кнопки на iOS7 с помощью NavigationController

Пожалуйста, помогите

Благодарности

+0

Вы просто хотите увидеть стрелку шеврон/назад без текста или вы хотите полностью скрыть кнопку «Назад»? Первая из них - плохая идея (IMHO, если вам не нужно дополнительное пространство), более поздний ответ уже много раз уже упоминался в StackOverflow. – DarkDust

+0

@ DarkDust да, мне нужно больше места по какой-то причине. –

+0

Итак, вы пытались использовать '@" "' ('nil' не будет работать, что даст вам« Назад »)? Что относительно '@" "' (одно пространство)? – DarkDust

ответ

11

Наконец в конечном итоге решить ее следующим образом, это один работал идеально.

self.navigationController.navigationBar.topItem.title = @""; 

по этой ссылке Removing the title text of an iOS UIBarButtonItem

Но если перейти от предыдущей точки зрения на следующее окно вы можете увидеть, что название предыдущой вида панели навигации исчезает, когда я поставил вышеупомянутое решение в viewDidDisappear из viewWillDisappear из предыдущий вид, который не является изящным решением в сценарии сценария UINavigationController на основе раскадровки, в другой ситуации я, наконец, решил использовать кнопку бара и установить его изображение в соответствии с собственной шевронной кнопкой, что дает лучшие результаты.

+0

. Я отправил другой ответ ниже, чтобы ответить на недостаток, который вы упомянули о исчезновении названия ... – Erwan

1

Для шкурой кнопку возврата навигационного контроллера, попробуйте это один:

[self.navigationItem setHidesBackButton:YES animated:YES]; 
[self.navigationItem setBackBarButtonItem:nil]; 
[self.navigationItem setLeftBarButtonItem:nil animated:NO]; 

может это поможет вам.

счастливым кодирования ... :)

+1

Это не то, о чем я просил, я спрашивал, как скрыть заголовок не всей кнопкой. –

+0

@vishal за то, что вам нужно спрятать целую кнопку назад и добавить пользовательскую кнопку с uiimage, если вы хотите, чтобы я положил код? –

+0

@vishal означает, что вы хотите только стрелку или другую? –

3

Если вы хотите скрыть назад название кнопки во все ваши приложения, поместить это в вас App Делегат:

@implementation UINavigationItem (myCustomization) 

-(UIBarButtonItem *)backBarButtonItem 
{ 
    return [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:nil]; 
} 

@end 

протестирован на прошивкой 7

+0

Это потрясающе. Работает как шарм, чтобы убедиться, что ВСЕ кнопки назад в приложении имеют только стрелку и текст. – teradyl

9

Ответ, предложенный @vishal имеет серьезный недостаток: он удаляет заголовок из контроллера А если вы перейдете назад от А до В.

Вот безопасное решение для применения на контроллере Перед нажатием контроллера B:

self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; 

И Свифт:

if let topItem = controller.navigationController?.navigationBar.topItem { 
    topItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil) 
} 
0

Самое простое решение снять заднюю название кнопки с

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil) 

в viewWillAppear на контроллере представления представления. Примечание, , представляющий не представлен.

От Removing the title text of an iOS UIBarButtonItem.

Смежные вопросы