回答
通過塊/關閉傳遞數據是一種很好且合理的方法,比通知要好得多。 下面是它的代碼。
第一視圖控制器(在您進行第二次的ViewController的對象)
@IBAction func push(sender: UIButton) {
let v2Obj = storyboard?.instantiateViewControllerWithIdentifier("v2ViewController") as! v2ViewController
v2Obj.completionBlock = {(dataReturned) ->()in
//Data is returned **Do anything with it **
print(dataReturned)
}
navigationController?.pushViewController(v2Obj, animated: true)
}
二視圖控制器(其中數據傳回第一個VC)
import UIKit
typealias v2CB = (infoToReturn :String) ->()
class v2ViewController: UIViewController {
var completionBlock:v2CB?
override func viewDidLoad() {
super.viewDidLoad()
}
func returnFirstValue(sender: UIButton) {
guard let cb = completionBlock else {return}
cb(infoToReturn: returnFirstValue)
}
}
「completionBlock = {(dataReturned) - >()in」這是什麼? –
它在哪裏你得到的數據返回在變量dataReturned – ankit
你可以解釋我通過任何實際數據? –
這個例子說明了使用與Alamofire進行服務調用,並將響應發回給調用的View Controller並關閉。
代碼在服務包裝類:
閉幕宣言中方法
func doRequestFor(_ url : String, method: HTTPMethod, dicsParams : [String: Any]?, dicsHeaders : [String: String]?, completionHandler:@escaping CompletionHandler) {
if !NetworkReachablity().isNetwork() {
return
}
if (dicsParams != nil) {print(">>>>>>>>>>>>>Request info url: \(url) --: \(dicsParams!)")}
else {print(">>>>>>>>>>>>>Request info url: \(url)")}
Alamofire.request(url, method: method, parameters: dicsParams, encoding:
URLEncoding.default, headers: dicsHeaders)
.responseJSON { response in
self.handleResponse(response: response, completionHandler: completionHandler)
}
}
typealias CompletionHandler = (_ response: NSDictionary?, _ statusCode: Int?, _ error: NSError?) -> Void
實施閉幕在調用視圖控制器
代碼:
ServiceWrapper().doRequestFor(url, method: .post, dicsParams: param, dicsHeaders: nil) { (dictResponse, statusCode, error) in
}
哥哥再次讀我的問題。而我想通過本地數據不是從JSON數據格式 –
兄弟有什麼不對?在我發佈的示例中,Service Wraper類使用closure將數據傳遞給調用viewcontroller。如果我錯了,請糾正我。 – Jigaroza287
@Sagarvaishnav,在你的問題中沒有本地數據的跡象,而且你可以傳遞你想要的任何數據,我發佈的只是一個例子,而不是你需要的確切節點。謝謝。 – Jigaroza287
- 1. 在兩個ViewController之間傳遞數據時出錯
- 2. 在ViewController之間傳遞地圖數據
- 3. 在ViewController和TabBarController之間傳遞數據
- 4. 如何使用swift在兩個viewController之間傳輸數據,不要使用storyboard
- 5. 在兩個TableView之間傳遞數據
- 6. 在兩個UIViewControllers之間傳遞數據
- 7. ObjectClass和ViewController之間傳遞數據
- 8. ViewController中UIview之間傳遞數據
- 9. 使用NSUserDefaults在ViewController和TableVC之間傳遞數據(Swift)
- 10. 如何在兩個Chrome應用程序之間傳遞數據?
- 11. 如何在PageViewController和ViewController之間傳遞數據?
- 12. 如何在兩個jQuery數據表之間傳遞參數
- 13. 如何使用SWRevealViewController在兩個視圖之間傳遞數組?
- 14. 使用Xcode 4.6在兩個視圖之間傳遞數據
- 15. 使用javascript在兩個aspx頁面之間傳遞數據
- 16. 使用jquery在兩個jsp頁面之間傳遞數據
- 17. 使用屬性在兩個窗體之間傳遞數據
- 18. 使用回調在兩個片段之間傳遞數據
- 19. 如何在兩個模塊之間傳遞事件數據
- 20. 如何在兩個控制器之間傳遞數據?
- 21. 如何在兩個活動之間傳遞數據
- 22. 如何在Swift中的兩個UITableViewControllers之間傳遞數據?
- 23. 如何在兩個視圖控制器之間傳遞數據
- 24. 如何在android中的兩個活動之間傳遞數據?
- 25. 如何在兩個android視圖之間傳遞數據?
- 26. 如何在兩個UITableViewControllers之間傳遞數據
- 27. 如何在兩個對話框之間傳遞數據mfc
- 28. 如何在兩個類之間傳遞數據?
- 29. 當我在兩個導航控制器之間傳遞數據時,在兩個ViewController之間傳遞數據Swift 3.1
- 30. 使用閉包傳遞數據
你有什麼已經嘗試過?提供一些代碼。這不是代碼編寫社區。謝謝 –
雖然我已經在下面給你提供了示例,但你不應該要求代碼。相反,你應該嘗試和任何混淆/問題應該在這裏解決! – ankit
我認爲這個問題是無效的。有關語法,您可以訪問文檔頁面。塊文檔是在這裏:https://stackoverflow.com/documentation/ios/6888/block#t=201706140953118422187 – Joshua