Как скрыть кнопку «назад» в UINavigationController? - PullRequest
153 голосов
/ 21 сентября 2009

Знаете ли вы, как скрыть кнопку «назад» в UINavigationController? Кроме того, как показать это обратно, но я думаю, это очень похоже на сокрытие этого ...

Так же, как почтовое приложение на iPhone, когда вы нажимаете «Редактировать» при просмотре электронной почты.

Ответы [ 14 ]

1 голос
/ 04 августа 2012

В моем подклассе UIViewController у меня есть этот метод:

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated: animated];

    // hide back button in edit mode
    [self.navigationItem setHidesBackButton:editing animated:YES];
}
0 голосов
/ 06 сентября 2017

скрывает кнопку возврата

let backBtn = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: navigationController, action: nil)


navigationItem.leftBarButtonItem = backBtn
0 голосов
/ 01 августа 2017

Свифт 3.

Как правило, вы должны использовать API-интерфейс per-ViewController от Apple, как уже много раз описано на этой странице, но иногда вам требуется немедленный контроль над кнопкой Назад.

Следующий код скрывает кнопку «Назад» и гарантирует, что в зоне скрытой кнопки не будет обнаружено обнаружения столкновения.

let emptyView = UIView(frame: .zero)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: emptyView)
0 голосов
/ 14 марта 2017

Это скрывает кнопку "Назад" и заменяет ее на кнопку добавления в Swift:

override func setEditing(_ editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)

    // This hides the back button while in editing mode, which makes room for an add item button
    self.navigationItem.setHidesBackButton(editing, animated: animated)

    if editing {
        // This adds the add item button
        let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
        // Use the animated setter for the left button so that add button fades in while the back button fades out
        self.navigationItem.setLeftBarButton(addButton, animated: animated)
        self.enableBackGesture(enabled: false)
    } else {
        // This removes the add item button
        self.navigationItem.setLeftBarButton(nil, animated: animated)
        self.enableBackGesture(enabled: true)
    }
}

func enableBackGesture(enabled: Bool) {
    // In addition to removing the back button and adding the add item button while in edit mode, the user can still exit to the previous screen with a left-to-right swipe gesture in iOS 7 and later. This code disables this action while in edit mode.
    if let navigationController = self.navigationController {
        if let interactivePopGestureRecognizer = navigationController.interactivePopGestureRecognizer {
            interactivePopGestureRecognizer.isEnabled = enabled
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...