Я добавил элемент управления навигацией для переключения между представлениями в моем приложении. Но некоторые виды не должны иметь кнопку «Назад» (предыдущий заголовок). Есть идеи как спрятать кнопку назад?
Я добавил элемент управления навигацией для переключения между представлениями в моем приложении. Но некоторые виды не должны иметь кнопку «Назад» (предыдущий заголовок). Есть идеи как спрятать кнопку назад?
Ответы:
Objective-C:
self.navigationItem.hidesBackButton = YES;
Swift:
navigationItem.hidesBackButton = true
self.navigationItem.leftBarButtonItem = nil;
. Если вы установили leftbarbuttonitem явно, вы можете использовать self.navigationItem.leftBarButtonItem = nil;
. self.navigationItem.hidesBackButton = YES;
будет скрывать кнопку «Назад» Item
Лучший способ - объединить их, чтобы скрыть кнопку «Назад», даже если вы настроили ее вручную:
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
скрыть кнопку возврата с кодом ниже ...
[self.navigationItem setHidesBackButton:YES animated:YES];
или
[self.navigationItem setHidesBackButton:YES];
Также, если у вас есть обычай, UINavigationBar
попробуйте ниже код
self.navigationItem.leftBarButtonItem = nil;
В Свифте :
Добавьте это к контроллеру
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
Используйте код:
self.navigationItem.backBarButtonItem=nil;
Не забывайте, что вам нужно вызывать его на объекте, который имеет контроллер навигации. Например, если у вас есть навигационный контроллер, нажимающий на контроллер панели вкладок с 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;
Мне показалось, что ничего из вышеперечисленного не сработало, визуального эффекта не было. Я использую раскадровки с видом, который «встроен» в контроллер навигации.
Затем я на уровне кода добавляю свои menuItems, и по какой-то причине «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.navigationController?.navigationItem.hidesBackButton = true
В c # или Xamarin.ios this.NavigationItem.HidesBackButton = true;
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true
если вы используете этот блок кода внутри didLoad или loadView сработали, но не сработали идеально. Если вы посмотрите внимательно, вы увидите, что кнопка «назад» скрывается при загрузке вашего представления. Посмотрите странно.
Какое идеальное решение?
Добавьте компонент BarButtonItem из componentView (Command + Shift + L) в целевую панель навигации viewControllers.
Выберите BarButtonItem set Title = "" на правой панели