Saturday, 4 April 2015

Unable to get variable right



Does anyone know how I can fix this?


the problem is that the prepareForSegue function is not getting the chanceRain variable. for some reason chanceRain only has a value inside the task variable. Does somebody know how to fix that? I tried to fix it in playground but I can't import SWXMLHash in it.



import UIKit
import SWXMLHash

class ViewController: UIViewController, UITableViewDelegate {

var cellContent = [""]
var indexOfTime = 0
var chanceRain = ""

@IBOutlet var cityInput: UITextField!

func enumerate(indexer: XMLIndexer) {
for child in indexer.children {
NSLog(child.element!.name)
enumerate(child)
}
}

@IBAction func button(sender: AnyObject) {

var url = NSURL(string: "http://ift.tt/1IyBdaF? key=ca89103dfe0a8b844a0a1e1249820&q=" +
cityInput.text.stringByReplacingOccurrencesOfString(" ", withString: "- ") + "/" + cityInput.text.stringByReplacingOccurrencesOfString(" ", withString: "- ") + "/" + "&num_of_days=2&tp=3&format=xml")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in

var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding)

println(url)

var xml = SWXMLHash.parse(urlContent!)


for elem in xml["data"]["weather"][0]["hourly"][self.indexOfTime]{
self.chanceRain = (elem["chanceofrain"].element!.text!)

}

println(self.chanceRain)


})
task.resume()

}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {


if(segue.identifier == "btnSubmitSegue"){


var svc: viewTwo = segue.destinationViewController as viewTwo

svc.datapassed = "hallo " + toString(chanceRain) //dit werkt, maar chanceRain niet..?


} }





override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

cellContent = ["01:00","04:00","07:00", "10:00", "13:00", "16:00", "19:00", "22:00"]
}

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

return cellContent.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = UITableViewCell(style: UITableViewCellStyle.Default , reuseIdentifier: "Cell")

cell.textLabel?.text = "\(cellContent[indexPath.row])"

return cell }

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){

indexOfTime = indexPath.row



}



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

No comments:

Post a Comment