UINavigationController должен вызывать метод при обновлении представления с новым ViewController - PullRequest
1 голос
/ 24 января 2020

У меня есть UINavigationControllerSubclass. Когда контроллер вида подключен к какому-либо новому контроллеру вида (по navigationController.popViewController, navigationController.popToRootViewController или даже manually sliding from left to right)

Мне нужно вызвать внутри моего контроллера навигации:

viewController.newTopViewController.updateBackButtonTitle()

Каков наилучший подход к достижению sh этого?

Ответы [ 3 ]

1 голос
/ 24 января 2020

Один из способов сделать это будет следующим:

class CustomNavigationController: UINavigationController {

    override func popToRootViewController(animated: Bool) -> [UIViewController]? {
        shouldUpdateBackButtonTitle()
        return super.popToRootViewController(animated: animated)
    }

    override func popViewController(animated: Bool) -> UIViewController? {
        shouldUpdateBackButtonTitle()
        return super.popViewController(animated: animated)
    }

    private func shouldUpdateBackButtonTitle() {
        viewController.newTopViewController.updateBackButtonTitle()
    }
}
0 голосов
/ 24 января 2020

Вы можете использовать метод viewWillAppear и легко обновлять элементы управления пользовательского интерфейса super.viewWillAppear (animated)

0 голосов
/ 24 января 2020

Когда вы возвращаетесь в viewController, вызывайте этот метод viewWillAppear. Внутри этой функции вы можете проверить свой rootviewController, а затем вызвать

updateBackbuttonTitle ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...