Вопрос

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

Это было полезно?

Решение

Цель-С:
self.navigationItem.hidesBackButton = YES;

Быстрый:
navigationItem.hidesBackButton = true

Другие советы

Лучший способ - объединить их, чтобы скрыть кнопку «Назад», даже если вы настроили ее вручную:

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;

скрыть кнопку возврата с кодом ниже ...

[self.navigationItem setHidesBackButton:YES animated:YES];

или

[self.navigationItem setHidesBackButton:YES];

Кроме того, если у вас есть пользовательский UINavigationBar , попробуйте следующий код

self.navigationItem.leftBarButtonItem = nil;

Используйте код:

 self.navigationItem.backBarButtonItem=nil;

В Swift :

Добавьте это в контроллер

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}

В функции viewDidLoad UIViewController используйте код:

self.navigationItem.hidesBackButton = YES;

Не забывайте, что вам нужно вызывать его для объекта, у которого есть контроллер nav. Например, если у вас есть навигационный контроллер, который нажимает на контроллер панели вкладок с RootViewController, вызов self.navigationItem.hidesBackButton = YES для RootViewController ничего не сделает. На самом деле вам придется вызывать self.tabBarController.navigationItem.hidesBackButton = YES

Не забывайте, что теперь у нас есть жест слайд-спина. Вы, вероятно, хотите удалить это также. Не забудьте включить его снова, если это необходимо.

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

Добавьте этот код в свой контроллер представления

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;

Для меня ничего из вышеперечисленного не сработало, оно не имело визуального эффекта. Я использую раскадровки с "встроенным" представлением в контроллере навигации.

Затем я добавляю свои элементы menu на уровне кода и по какой-то причине " backButton " отображается при визуальной отладке иерархии представлений, а моя иконка menuItem отображается под невидимой кнопкой «назад».

Я попробовал настройки, как предлагалось в различных методах подключения, но это не имело никакого эффекта. Затем я попробовал более жестокий подход и перебрал подпредставление, которое также не имело никакого эффекта.

Я проверил размеры своих значков и, кажется, был в порядке. После ссылки на Apple Human Interface Guideline я подтвердил, что мои иконки правильные. (В моем случае на 1 пиксель меньше 24px 48px 72px).

Самая странная часть - это фактическое исправление ...

При добавлении элемента BarButton присвойте ему заголовок как минимум с одним символом , в моем случае это пробел.

Надеется, это кому-нибудь поможет.

//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX 
                                                                    style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];

[self.navigationItem setLeftBarButtonItem:leftButtonItem];

Это не сработало для меня во всех случаях, когда я установил

self.navigationItem.hidesBackButton = YES;

в viewWillAppear или ViewDidLoad, но работал отлично, когда я установил его в init viewController.

попробуйте это - self.navigationController? .navigationItem.hidesBackButton = true

В c # или Xamarin.ios, this.NavigationItem.HidesBackButton = true;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top