【问题标题】:Destination of navigation back button swift快速导航返回按钮的目的地
【发布时间】:2018-08-05 17:42:22
【问题描述】:

我将 UITableViews 与Show segue 连接起来。每当我点击导航栏上的后退按钮时,我都想更改目标 tableView 的一些变量。假设我不允许创建新的后退按钮,当点击后退按钮时如何检测/调用目标 tableView?就像在 prepareforsegue 我们有 segue.destination 一样,是否有类似“backbutton.destination”的东西?

谢谢!

【问题讨论】:

  • 你解决了吗?如果没有...您能否在我的回答中回答我在 cmets 中的问题。如果您不提供任何反馈,我愿意提供帮助。

标签: swift xcode


【解决方案1】:

你应该在这里做的(我认为)不是试图找到后退按钮的目的地,而是在前进时传递感兴趣的对象。

在您的详细视图中,您可能会有类似...

protocol DetailViewDelegate {
    func detailViewDidChange()
}

然后在详细视图控制器中...

class DetailViewController: UIViewController {
    weak var delegate: DetailViewDelegate?

    // you could call this from viewWillDisappear or something
    func doThisWhenYouWantToUpdateTheTableView() {
        delegate?.detailViewDidChange()
    }
}

现在在表格视图中...

func prepareForSegue(...) {
    if let vc = segue.destination as? DetailViewController {
        vc.delegate = self
    }
}

还有……

extension MyTableViewController: DetailViewDelegate {
    func detailViewDidChange() {
        // respond to the change here.
    }
}

【讨论】:

  • 感谢您的回答,但我认为这不是我正在寻找的解决方案。
  • @hell2809 为什么不呢?
  • @hell2809 为什么这不是解决方案?您正在尝试在要返回的视图控制器中运行一些代码。为什么您认为这不是解决方案?如果您实际上没有提供任何反馈,那么谁能提供帮助?
  • 哦,很抱歉,由于需求变化,我正忙于修复我的项目 :( 结果我的客户一开始就不需要我的团队正在构建的任何东西......谢谢你的时间无论如何,我真的很感激!
  • @hell2809 不用担心。我知道那是什么样的。祝你好运。
猜你喜欢
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多