tableView未加载正在传递的值

时间:2015-12-03 11:41:03

标签: ios swift uitableview mkmapview

我创建了一个单独的类,其子类是tableViewController,我在MapViewController中继承它,但是地址未在表视图中加载。 TableView在模拟器上是空白的。请告诉我一些方法,它可以通过tableView

传递值(通过谷歌API的不同地方的名称)

enter image description here

override func viewDidLoad()
{
    super.viewDidLoad()
    self.searchResults = Array()
    self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cellIdentifier")
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    // #warning Incomplete implementation, return the number of rows
    return self.searchResults.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier", forIndexPath: indexPath)

     cell.textLabel?.text = self.searchResults[indexPath.row]

    return cell
}
override func tableView(tableView: UITableView,
    didSelectRowAtIndexPath indexPath: NSIndexPath){
        // 1
        self.dismissViewControllerAnimated(true, completion: nil)
        // 2
        let correctedAddress:String! = self.searchResults[indexPath.row].stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.symbolCharacterSet())
        let url = NSURL(string: "https://maps.googleapis.com/maps/api/geocode/json?address=\(correctedAddress)&sensor=false")

        let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { (data, response, error) -> Void in
            // 3
            do {
                if data != nil{
                    let dic = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableLeaves) as!  NSDictionary

                    let lat = dic["results"]?.valueForKey("geometry")?.valueForKey("location")?.valueForKey("lat")?.objectAtIndex(0) as! Double
                    let lon = dic["results"]?.valueForKey("geometry")?.valueForKey("location")?.valueForKey("lng")?.objectAtIndex(0) as! Double
                    // 4
                    self.delegate.locateWithLongitude(lon, andLatitude: lat, andTitle: self.searchResults[indexPath.row] )
                }
            }
            catch
            {
                print("Error")
            }
        }
        // 5
        task.resume()
}

func reloadDataWithArray(array:[String])
{
    self.searchResults = array
    self.tableView.reloadData()
}

}

0 个答案:

没有答案