我有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调用委托方法?