从辅助方法呈现视图控制器

时间:2015-11-04 04:20:24

标签: ios swift

我正在写一个帮手来包装我的alamofire请求。并且想知道当我从帮助器类接收消息时如何呈现视图控制器,或者如何从我的助手类到我的视图控制器进行通信我应该提供这个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
                }

        }

    }

}

2 个答案:

答案 0 :(得分:0)

试试这个伪代码:

  1. 在您的助手类中编写一个接受您的视图的构造函数 控制器对象。

       -(void)initWithController:(YourViewController *)_ctr
       {
         ctr = _ctr;
       }
    
  2. 编写一个方法,在视图控制器类中将视图控制器显示为goToNextVc()。

  3. 使用从视图控制器获取的同一实例从helper类调用goToNextVc()方法。

答案 1 :(得分:0)

使用delegation将信息从AlamoHelper传递给来电者UIViewController

所以,

  1. 创建一个协议,通过一些方法传递有用的信息,如提出警报等。
  2. 创建委托属性     AlamoHelper
  3. 从您的实例中实例化AlamoHelper对象     UIViewController,将self设置为AlamoHelper对象的委托。
  4. UIViewController
  5. 中实施协议方法
  6. 最后,一旦请求从AlamoHelper类返回,就调用委托对象上的协议方法。
相关问题