[英]MFMailComposeViewController delegate not working on swift 4
[英]Swift 4 Why Delegate is not working
在ViewController中:
protocol SearchResultDelegate {
func SendDataToResultController(_ result: [SkelbimasModel])
}
class ViewController: UIViewController, UISearchBarDelegate, CLLocationManagerDelegate, MKMapViewDelegate, AddSkelbimas {
@IBOutlet weak var Label: UILabel!
@IBOutlet weak var SearchBar: UISearchBar!
// @IBOutlet weak var boomFilter: BoomMenuButton!
// @IBOutlet weak var Label: UILabel!
@IBOutlet weak var CategoryView: UIView!
@IBOutlet weak var Map: MKMapView!
@IBOutlet weak var bmb: BoomMenuButton!
var Delegate:SearchResultDelegate?
.........
//ijungimiame lentele su paieskos rezultatais
if(result.count > 1) {
Delegate?.SendDataToResultController(result)
GoToSearchResultVC(result)
}
調用函數GoToSearchResultVC(result)會打開新的控制器,因為新的控制器代碼為:
import UIKit
class SearchResultTableViewController: UITableViewController, SearchResultDelegate {
.....
func SendDataToResultController(_ result: [SkelbimasModel]) {
print("result count: \(result.count)")
results = result
}
但是永遠不會調用此函數。 我以前使用過代表,很好。 或者我只是累了,看不到我做錯了什么...
在SearchResultTableViewController
的代碼中創建ViewController
某個地方,必須設置委托的值:
let viewController = ViewController()
viewController.Delegate = self
// present viewController
如果要顯示ViewController的SearchResultTableViewController之后,執行類似這樣的操作是否更容易:
func GoToSearchResultVC(result: Any) {
let searchVC = SearchResultTableViewController()
searchVC.results = results
self.present(searchVC, animated: true, completion: nil)
}
委托設計模式是從其他類接收事件,如果只想設置一個變量,這種方式對我來說更好
順便說一句,檢查您的代碼,您在創建SearchResultsVC之前先調用委托
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.