Сменить кнопку с другого контроллера вида после нажатия кнопки «Назад» - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь скрыть / отключить кнопку от другого контроллера представления после нажатия кнопки «Назад» в навигационной панели, но я не могу понять это. По сути, у меня есть контроллер представления, где пользователь может добавить до 7 дней тренировок (дни отображаются в виде кнопок). Всякий раз, когда они нажимают на день, они переходят в другое представление, где они могут выбрать упражнения, которые они хотят сделать в течение этого дня. После сохранения и нажатия кнопки «Назад» на навигационной панели я хочу отключить кнопку для дня, в который они только что добавили тренировки, чтобы они больше не могли ее нажимать. Буду очень признателен за вашу помощь! Заранее спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете просто написать следующий код в VC с условием возврата

override func viewWillAppear(_ animated: Bool) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
 if appDelegate.isFromPreviousScreen == true{
    button.isHidden = true
   }
}

Примечание: - fromPrevious сделать это верным при возвращении из nextVC

Если ваш вопрос заключается в том, чтобы сделать fromPrevious истинным при выходе из второго ВК:

Тогда вам нужно передать значение оттуда, или, чтобы сделать этот материал простым для новичка, я бы посоветовал вам взять глобальную переменную в AppDelegate

 class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    var isFromPreviousScreen:Bool = false
}

И добавить следующий код в SecondVC:

override func viewWillDisappear(_ animated: Bool) {
       let appDelegate = UIApplication.shared.delegate as! AppDelegate
        appDelegate.isFromPreviousScreen = true
}

Надеюсь, это поможет.

...