У меня есть 4 разные кнопки, которые ведут к одному контроллеру вида SearchPage()
, поэтому я назначил эти кнопки в основной класс yearOne
следующим образом:
class yearOne: UICollectionViewController
:
@objc func buttonAction(sender: UIButton!) {
var tagVal : NSInteger = sender.tag
switch sender.tag {
case 0:
print("ONEEE")
let destination = SearchPage()
navigationController?.pushViewController(destination, animated: true)
case 1:
print("TWOOO")
let destination = SearchPage()
navigationController?.pushViewController(destination, animated: true)
case 2:
print("THREEE")
let destination = SearchPage()
navigationController?.pushViewController(destination, animated: true)
case 3:
print("FOURRR")
let destination = SearchPage()
navigationController?.pushViewController(destination, animated: true)
default:
let destination = SearchPage()
navigationController?.pushViewController(destination, animated: true)
}
}
каждая из кнопок находится в разных классах
class fallQuarterCell: UICollectionViewCell, UITableViewDelegate, UITableViewDataSource
:
let addButton : UIButton = {
let button = UIButton()//frame: CGRect(x: 345, y: 10, width: 30, height: 30))
button.setImage(UIImage(named: "addicon"), for: .normal)
button.imageEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
button.tag = 0
button.addTarget(self, action: #selector(yearOne.buttonAction), for: .touchUpInside)
return button
}()
class winterQuarterCell: UICollectionViewCell, UITableViewDelegate, UITableViewDataSource
:
let addButton : UIButton = {
let button = UIButton()//frame: CGRect(x: 345, y: 10, width: 30, height: 30))
button.setImage(UIImage(named: "addicon"), for: .normal)
button.imageEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
button.tag = 1
button.addTarget(self, action: #selector(yearOne.buttonAction), for: .touchUpInside)
return button
}()
и так далее с третьим и четвертые кнопки. В любом случае кнопка работает, и каждый из них правильно распечатывается и отправляет меня в SearchPage()
Однако в моем классе SearchPage()
я пытаюсь вспомнить sender.tag ?? так что я могу использовать оператор if / else, для которого была нажата / выбрана кнопка.
let mainvc = yearOne()
let vc = fallQuarterCell()
let vc2 = winterQuarterCell()
let vc3 = springQuarterCell()
let vc4 = summerQuarterCell()
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
tableView.deselectRow(at: indexPath, animated: true)
if (mainvc.tagValue == 0){
if (resultSearchController.isActive){
vc.data.append(filteredCourses[indexPath.row])
UserDefaults.standard.set(vc.data, forKey: "SavedArray")
navigationController?.popViewController(animated: true)
}
else{
vc.data.append(allCourses[indexPath.row] as! String)
UserDefaults.standard.set(vc.data, forKey: "SavedArray")
navigationController?.popViewController(animated: true)
}
}
else if (mainvc.tagValue == 1){
if (resultSearchController.isActive){
vc2.data.append(filteredCourses[indexPath.row])
UserDefaults.standard.set(vc2.data, forKey: "SavedArray2")
vc2.tableView.reloadData()
navigationController?.popViewController(animated: true)
}
else{
vc2.data.append(allCourses[indexPath.row] as! String)
UserDefaults.standard.set(vc2.data, forKey: "SavedArray2")
vc2.tableView.reloadData()
navigationController?.popViewController(animated: true)
}
}
}
Кто-нибудь знает, как мне подойти к этому? Прямо сейчас, поскольку я добавил tagVal
внутри кнопки fun c, yearOne
aka mainvc
, похоже, не имеет члена.