Am1rFT
Am1rFT

Reputation: 247

Storing String and Int in a dictionary in swift

I'm almost new to Swift. In this URL I'll get some element; one of elements is categoryList which has two elements itself. I set the goodTypeName as the table's cell title, and when a cell is pressed it needs to send the goodType which is number (Int) to be placed in the next Url. I tried to create a dictionary but I failed!

UiTable code :::

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return Global.GlobalVariable.names.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if Global.GlobalVariable.names == []
    {
        self.DisplayMessage(UserMessage: "nothing is available ")
        print("server is nil")
    }
    let cell = UITableViewCell()
    let content = Global.GlobalVariable.names[indexPath.row]
    cell.textLabel?.text = content
    cell.accessoryType = .disclosureIndicator
    return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print(indexPath.item)
    let next = self.storyboard?.instantiateViewController(withIdentifier: "SVC")
    self.navigationController?.pushViewController(next!, animated: true)
}

My problem is not with populating them in a table, my problem is when a cell is selected , goodtype is needed to be sent to next page, becuase next page's url has to have the goodtype code.

Upvotes: 0

Views: 76

Answers (1)

Osman
Osman

Reputation: 1586

You can use the "prepareSegue" to pass Data.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

if segue.identifier == "something"{
    if let startViewController = segue.destination as? StartViewController{
        startViewController.goodtype = Global.GlobalVariable.goodtype[indexPath.row]
    }
}
}

And in your StartViewController just assign a variable to receive your data :

var goodtype = String()

Or use the navigation controller but with this line you can access to the another view controller property.

         if let startViewController = storyboard.instantiateViewController(withIdentifier: "StartViewController") as? StartViewController {
    startViewController.goodtype = Global.GlobalVariable.goodtype[indexPath.row]
     let navigationController = UINavigationController()
  navigationController.pushViewController(startViewController, animated: true)
    }

Upvotes: 1

Related Questions