Я испробовал большинство из этих решений и столкнулся с проблемой, из-за которой кнопка редактирования возвращалась при повороте устройства. Вращение вернулось бы к первому контроллеру представления, затем, когда я вернулся к большему контроллеру представления, там была кнопка редактирования. Лучшее решение состояло в том, чтобы стать UITabBarControllerDelegate
и установить правую кнопку на ноль в любое время, когда больше контроллера представления стало выбранным контроллером представления. Это работает для iOS 11-12.
final class DashboardController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
}
extension DashboardController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if viewController == moreNavigationController {
moreNavigationController.navigationBar.topItem?.rightBarButtonItem = nil
}
}
}
Для достижения этой цели я использовал идеи из блога этого человека. В основном это включает в себя добавление прозрачного вида на карту. Затем карта позволяет преобразовывать местоположения в точки на виде. Сообщите мне, если сайт вам не поможет, и я могу попробовать выкопать пример из моего кода.