2017-07-17 29 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

相關問題