【发布时间】:2020-12-23 19:38:25
【问题描述】:
我有两个 viewController:
1/ LoginViewController
2/ BibliothequeViewController
我通过单击 LoginViewController 内的按钮来展示 BibliothequeViewController,同时尝试与 BibliothequeViewController 交流它是 >LoginViewController 呈现它。
所以在 LoginViewController 里面,我有这个:
@IBAction func onLibrariesButtonClicked(_ sender: Any) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc: BibliothequesViewController = storyboard.instantiateViewController(withIdentifier: "BibliothequesViewController") as! BibliothequesViewController
BibliothequesViewController.sharedInstance.presentedBy=self
print("INSIDE LoginViewController.onLibrariesButtonClicked, BibliothequesViewController.sharedInstance.presentedBy",BibliothequesViewController.sharedInstance.presentedBy!)
// Logs LoginViewController
self.present(vc, animated: true, completion: nil)
}
在 BibliothequesViewController 里面,我有这个:
class BibliothequesViewController: UIViewController {
// presentedBy represents which view has presented the BibliothequesViewController
// So that when a library is selected, I go back to the ViewController that presented BibliothequesViewController
var presentedBy: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
print("INSIDE viewDidLoad, presentedBy: ",presentedBy)
// Logs nil
}
}
如您所见,在 LoginViewController 代码中,BibliothequesViewController.sharedInstance.presentedBy 已设置为 LoginViewController。
但是在BibliothequeViewController里面是nil,应该是LoginViewController。
【问题讨论】:
标签: ios swift xcode uiviewcontroller tvos