无法在KYDrawer DrawerController中调用任何东西

时间:2019-01-28 12:08:13

标签: swift

我已经使用KYDrawerController创建了一个Drawer视图,它是UIViewControllertableview的内容,我正在调用一个API来填充tableView,但是无法在Drawer ViewController中显示或调用该API函数。

这是我的代码:

import UIKit
import Alamofire
import SwiftyJSON

class DrawerViews: UIViewController, UITableViewDelegate, UITableViewDataSource {

    let categoriesUrl = "https://stagecmsbmncapi.projectpresent.biz/client/categories/"

    public var tag_Names: String{ return UserDefaults.standard.string(forKey: "name") ?? "" }


    @IBOutlet weak var tableView: UITableView!

    var data = [[String: AnyObject]]()

    override func viewDidLoad() {
        super.viewDidLoad()
        getCategories()

        // Do any additional setup after loading the view.
    }
    func getCategories() {
        Alamofire.request(categoriesUrl).responseJSON { (response) in
            if ((response.result.value) != nil) {
                var jsonResult = JSON(response.result.value!)
                print(jsonResult)
                if let da = jsonResult["result"].arrayObject
                {
                    self.data = da as! [[String : AnyObject]]

                }

            }
        }
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        return 3
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        switch section {
        case 0:
            return 1
        case 1:
            return 2
        case 2 :
            return 5
        default:
            return 1
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        switch indexPath.section {
        case 0:
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! NameCell
            return cell
        case 1:
            let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! CatgoryCell
            return cell1
        case 2 :
            let cell2 = tableView.dequeueReusableCell(withIdentifier: "cell3", for: indexPath) as! SupportCell
            return cell
        default :
            print("Defaults")
        }
        return cell
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        switch indexPath.section {
        case 0:
            return 100
        case 1:
            return 60
        case 2 :
            return 60
        default:
            return 700
        }
    }
}

1 个答案:

答案 0 :(得分:1)

在ViewDidAppear中调用该getCategories()函数。