от
В раскадровке 5 кнопок. Если я нажму любую кнопку, она перейдет в новую раскадровку. В новой раскадровке я просто хочу найти, какая кнопка была нажата, чтобы прийти сюда.              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

2 Ответы

0 голосов
от
Вы можете создать класс
State
, в котором вы можете установить тип кнопки, представленный перечислением. Затем получите доступ к значению в новой раскадровке.
struct State {
    static var btnType: ButtonType? 
}

enum ButtonType {
    case buttonA
    case buttonB
    // ..
}
В контроллере основного вида, где есть кнопки, установите состояние при нажатии кнопки.
class ViewController: UIViewController {
    func buttonADidTap(_ sender: Any) {
        State.btnType = .buttonA        
        // display the other view controller, say MyVCA
    }

    func buttonBDidTap(_ sender: Any) {
        State.btnType = .buttonB
        // ..
    }
}
В контроллере дочернего представления доступ к данным состояния в
viewDidLoad
.
class MyVCA: UIViewController {

    override func viewDidLoad() {
        if let btnType = StateData.btnType {
            switch btnType:
            case .buttonA:
                // ...
        }
    }
}
    
0 голосов
от
Добавьте тег к кнопке (в коде или в раскадровке) и отправьте тег следующему ViewController нажатой кнопки.
class ViewController: UIViewController {

    override func viewDidLoad() {

        firstButton.tag = 1
        secondButton.tag = 2
        thirdButton.tag = 3
    }

    func goToNextVC(buttonTag: Int) {

        let vc = SecondVC()
        vc.buttonTag = buttonTag
        self.navigationController.push(vc, animated: true)
    }

    // action for all buttons if he just only send tag
    func buttonsDidTap(_ sender: Any) {
        goToNextVC(buttonTag: sender.tag)
    }
}
И второй ViewController
class SecondVC: UIViewController {

    var buttonTag: Int?

    override func viewDidLoad() {

        if buttonTag != nil {
            switch buttonTag:
            case 0:
            // ...
        }
    }
}
    
...