У меня есть несколько контроллеров представлений (контроллеры вида «From»), подключенные к одному контроллеру вида ItemCollectionVC
.
Когда представлен ItemCollectionVC
, я хочу знать, какой контроллер представления представил его.
Как это сделать?Как узнать, какой контроллер представлений представлен контроллером вида
'С' контроллерах зрения:
@IBAction func selectOpponentItems(_ sender: UIButton) {
let VC = storyboard?.instantiateViewController(withIdentifier: "ItemCollectionVC") as! ItemCollectionVC
VC.preferredContentSize = CGSize(width: UIScreen.main.bounds.width/2, height: UIScreen.main.bounds.height/1.5)
VC.modalPresentationStyle = UIModalPresentationStyle.popover
VC.popoverPresentationController?.sourceView = sender
VC.popoverPresentationController?.sourceRect = sender.bounds
self.present(VC, animated: true, completion: nil)
}
ItemViewController:
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
}
Edit:
Я пытаюсь получить доступ к свойству так:
switch self.presentingViewController!.title! {
// Error
case "CounterBuildVC":
dataSourceItems = counterBuildItems
case "FreeBuildVC":
dataSourceItems = freeBuildItems
case "KrakenViewController":
dataSourceItems = captureKrakenItems
default:
break
}
However, it crashes with error: unexpectedly found nil, I'm sure I set the title in storyboard
Вы можете достичь этого 'методом self.presentingViewController'. –
Возможный дубликат [Access parental controller controller parent] (http://stackoverflow.com/questions/6735170/access-modal-view-controller-parent) – Larme