如何将我的视图控制器设置为它自己的委托?
Posted
技术标签:
【中文标题】如何将我的视图控制器设置为它自己的委托?【英文标题】:How can I make my view controller setted as it's own delegate? 【发布时间】:2017-07-17 07:56:04 【问题描述】:如果需要登录,我有需要弹出登录的“帮助”单例类。我想捕获登录视图控制器的返回,所以我在我的 LoginViewController 中实现了一个协议,并且需要在单例类中设置我的委托,但是当我尝试这样做时:
loginController.delegate = self
Xcode 尝试将其更正为:
loginController.delegate = self as! LoginViewControllerDelegate
我的 LoginViewController.swift 文件中的协议:
protocol LoginViewControllerDelegate
func loginViewControllerDidReturn(identifier: String)
有什么想法吗?
【问题讨论】:
【参考方案1】:确保您的 LoginViewController 定义是:
class LoginViewController: UIViewController, LoginViewControllerDelegate
...
这会通知编译器你的类实现了协议。
你也可以做一个扩展来实现协议:
extension LoginViewController: LoginViewControllerDelegate
// Implement here the func of your protocol
【讨论】:
这解决了问题。我应该如何/在哪里实施我的协议?我一直将它们添加到我的视图控制器 .swift 文件的顶部。这不是正确的地方吗? 您可以在任何地方进行操作。对于一个委托,我通常会和你做同样的事情:在类的顶部,它是它的委托 但这不是您正在处理的单例模式设计,它是一个委托。我将编辑您不相关的标题【参考方案2】:'self' 是否符合 LoginViewControllerDelegate 协议?
【讨论】:
以上是关于如何将我的视图控制器设置为它自己的委托?的主要内容,如果未能解决你的问题,请参考以下文章