Swift-从未显示的控制器中调用委托方法

时间:2018-06-29 01:02:16

标签: ios swift delegation

我有2个视图控制器,HomeController和MenuController。我有一个Tab View Controller。在我的MenuController中,我创建了一个委托:

router.get('/:name/:value', (req, res, next) => {
  const o = {};
  const r = `.*${req.params.value}.*`;
  // the above gives me error such as CastError: Cast to string failed for value "{ '$regex': '.*y.*' }" at path "username" for model "Model"

  o[req.params.name] = { $regex: { $regex: r }, $options: 'i' };
  Model.find(o, (err, doc) => {
    if (err) return next(err);
    res.send('success');
  });
});

现在我正在尝试从HomeController调用此委托方法,但是有一个问题,MenuController出现在TabViewController中,而不是HomeController中,但是HomeController是初始Controller。

这是MenuController在TabViewController中的呈现方式:

protocol MenuDelegate: NSObjectProtocol {

    func hideHomeTabs()
}

class MenuController: UITableViewController {

    var menuDelegate: MenuDelegate?

    func doSomething() {
         self.menuDelegate?.hideHomeTabs()
    }

}

MenuController被显示为侧面菜单https://github.com/jonkykong/SideMenu

所以我的问题是,如何从HomeController调用委托方法?

0 个答案:

没有答案
相关问题