我有一个带有按钮的视图控制器,当点击它时会转到带有表视图的第二个视图控制器。这两个场景通过故事板链接,如Present Modally。我希望在第二个视图控制器的表视图中选择行时,第一个视图控制器中的按钮文本会发生变化。
选择单元格时,按钮没有变化的原因是什么?
非常感谢任何帮助,我仍然是Swift的初学者。
以下是相关的代码行:
查看控制器1
protocol ModalDelegate: class {
func didSelectValue(value: String)
}
class DashboardModalViewController: UIViewController {
var delegate: ModalDelegate?
}
extension DashboardModalViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let rowTitle = self.rows[indexPath.row].text
print (rowTitle)
delegate?.didSelectValue(value: rowTitle)
dismiss(animated: true, completion: nil)
}
}
查看控制器2
tapToWatch.require(toFail: doubleLike)
答案 0 :(得分:2)
我认为你需要在View Controller 1的prepare
方法中为segue设置第二个控制器的委托,如:
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let dashboardModalViewController = segue.destination as? DashboardModalViewController {
dashboardModalViewController.delegate = self
}
}