【发布时间】:2020-09-10 12:24:16
【问题描述】:
我有一个表格视图控制器,当我单击 navigationBarItem 中的按钮时,我打开了相同的视图控制器,但设置略有不同,具体取决于标志。通过关闭此视图控制器,我想将值传递给前一个并用新数据重新加载其数据,我该怎么做?委托在这里无济于事,因为它是同一个类。
class LibraryViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
...
var isContentFromPlaylist: Bool = false
...
//I open the same VC
@IBAction func addTracksButtonPressed(_ sender: Any) {
let storyboard = UIStoryboard(name: "LibraryViewController", bundle: nil)
let vc = storyboard.instantiateViewController(identifier: "Library") as! LibraryViewController
...
navigationController?.showDetailViewController(vc, sender: nil)
}
...
@objc private func doneButtonPressed() {
...
//Here I want to change value isContentFromPlaylist to true in previous VC when this VC will close
dismiss(animated: true, completion: nil)
}
}
【问题讨论】:
-
委托会起作用,因为你有两个不同的对象,即使它们来自同一个类。通常情况下,只是更改显示而不是显示同一控制器的副本,但这并没有错。
标签: swift uitableview uiviewcontroller