我目前正在写一个帮助程序来包装我的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/

10-10 16:41