我目前正在写一个帮助程序来包装我的alamofire请求。并且想知道当我从助手类中收到一条消息时如何呈现alertviewcontroller,或者如何从助手类与我应该呈现此alertviewcontroller的视图控制器进行通信?
以下是我所拥有的,如果您发现我做错了,请提供任何建议,因为这是我第一次编写api包装器。
import UIKit
import Alamofire
import SwiftyJSON
import SVProgressHUD
class AlamoHelper: NSObject {
class func request(method: Alamofire.Method, url: URLStringConvertible, var parameters: [String: AnyObject]? = nil) -> Alamofire.Request {
parameters!["os"] = "ios"
if let versionString = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as? String {
parameters!["v"] = versionString
}
SVProgressHUD.showWithMaskType(SVProgressHUDMaskType.Black)
return Alamofire.request(method, url, parameters: parameters, encoding: .JSON)
.responseJSON {
response in
SVProgressHUD.dismiss()
switch response.result {
case .Success:
let json = JSON(response.result.value!)
if let message = json["message"].string {
let alert = UIAlertController(title: json["subject"].stringValue, message: message, preferredStyle: .Alert)
let okAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
alert.addAction(okAction)
}
if json["status"].intValue == 401 {
AppDelegate.isLoggedIn = false
AppDelegate.removeCookies()
}
break
case .Failure:
break
}
}
}
}
最佳答案
使用delegation将信息从AlamoHelper
传递给呼叫方UIViewController
。
所以,
通过一些方法传递有用的信息(如警报等)来创建协议
在创建一个委托属性
AlamoHelper
。
从您的实例化AlamoHelper
对象时
UIViewController
,将self
设置为AlamoHelper
对象的委托。
在您的UIViewController
中实施协议方法。
最后,一旦请求从AlamoHelper
类返回,请在委托对象上调用protocol方法。
关于ios - 通过助手方法呈现 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33513633/