2017-07-17 75 views
1

我有'助手'单身人士类,需要弹出一个登录,如果需要登录。我想捕捉从登录视图控制器的回报,所以我已经实现了我的LoginViewController的协议,并需要设置我的委托在单例类,但是当我尝试这样做:如何让我的视图控制器设置为它自己的代理?

loginController.delegate = self 

Xcode的尝试更正为:

loginController.delegate = self as! LoginViewControllerDelegate 

我LoginViewController.swift文件的协议:

protocol LoginViewControllerDelegate { 
    func loginViewControllerDidReturn(identifier: String) 
} 

任何想法?

回答

3

确保您LoginViewController的定义是:

class LoginViewController: UIViewController, LoginViewControllerDelegate { 
... 
} 

此通知您,您的类实现协议的编译器。

您还可以提出延期执行该协议:

extension LoginViewController: LoginViewControllerDelegate { 
    // Implement here the func of your protocol 
} 
+0

这解决了这个问题。我应该如何/在哪里实施我的协议?我一直在将它们添加到我的视图控制器.swift文件的顶部。这是不是正确的地方? – toast

+1

你可以随心所欲地做到这一点。对于一个代表,我通常会和你一样:在班级的顶部,它是 – Dean

+0

的代表。但这不是你正在处理的单例模式设计,而是代表团。我会编辑不相关的标题 – Dean

1

'self'是否符合LoginViewControllerDelegate协议?

+0

啊,那会有问题,谢谢! :) – toast

相关问题