У меня есть viewController
с кнопкой меню, установленной как navigationItem
, например:
self.navigationItem.setLeftBarButton(leftButton, animated: false)
.
Это вызывает меню ящика, которое хорошо в его контексте. Но что, если я хочу нажать viewController
из другого места в проекте, где вместо кнопки меню больше подходит кнопка «Назад»? То есть я просто хочу вернуться к предыдущему viewController
вместо вызова меню. Как мне избавиться от кнопки меню и вместо этого получить кнопку назад в этом конкретном случае?
Вот код для класса. Как видите, здесь установлен navigationItem
.
override func viewDidLoad() {
super.viewDidLoad()
self.setUserInterfaceStyleLight()
loginStoryboard = UIStoryboard(name: "StoryboardOne", bundle: nil)
let leftButton = UIBarButtonItem(image: UIImage(named: "menu-icon"), style: .plain, target: self, action: #selector(self.leftSideMenuButtonPressed(_:)))
self.navigationItem.setLeftBarButton(leftButton, animated: false)
self.segmentController.tintColor = .white
if showContacts == true {
lastSegmentViewed = 1
}
Analytics.logEvent("contact_book", parameters: nil)
NotificationCenter.default.addObserver(self, selector: #selector(userDidLogin(_:)), name: NSNotification.Name.UserDidLogin, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(applicationAndViewWasResumed(_:)), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
self.view.backgroundColor = ThemTemplate.shared.getThem().secondaryColor
if #available(iOS 13.0, *) {
segmentController.backgroundColor = UIColor.gray
} else {
segmentController.backgroundColor = UIColor.clear
}
}
Можно ли скрыть и отключить navigationItem
от предыдущего viewController
или заменить его кнопкой возврата?
Вот так я нажимаю viewController
:
UIStoryboard *containerStoryboard = [UIStoryboard storyboardWithName:@"Login" bundle:nil];
BaseViewController *v = [containerStoryboard instantiateViewControllerWithIdentifier:@"base"];
[self.navigationController pushViewController:v animated:YES];
В классе до толчка к новому viewController
Я пробовал что-то вроде:
v.navigationItem.leftBarButtonItem = nil;
v.navigationItem.hidesBackButton = NO;
... который ничего не делал (и да, установка его на ноль глупа, просто хотел посмотреть, если что-то произошло, и этого не произошло).
viewController
, который я нажимаю, не встроен в контроллер навигации, если это помогает. Я попытался встроить его в один, но с теми же результатами.
Оставил мне знать, есть ли что-нибудь еще, что может быть полезным.