I have a tableview with a button in each cell. When that is tapped I have a didselectrow function. I want to use my indexpath to get a value from an array that gives the cells contents. How can I convert this NSIndexpath to an int to use in the array?
Asked
Active
Viewed 8,568 times
5
-
1indexPath.Row. IndexPath is an NSIndexPath. – ericgu Jan 19 '15 at 16:11
2 Answers
11
Most likely what you want is the row property. You can see an example here.
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
let alert = UIAlertController(title: "Item selected", message: "You selected item \(indexPath.row)", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK",
style: UIAlertActionStyle.Default,
handler: {
(alert: UIAlertAction!) in println("An alert of type \(alert.style.hashValue) was tapped!")
}))
self.presentViewController(alert, animated: true, completion: nil)
}

Ogre Codes
- 18,693
- 1
- 17
- 24
-
1Ironically, I discovered your question while looking for the answer to this myself. – Ogre Codes Jan 23 '15 at 06:52
2
Use IndexPath.row, see below for example.
Ref (IndexPath:316-319)
/// The row of this index path, when used with `UITableView`.
///
/// - precondition: The index path must have exactly two elements.
public var row: Int
Example
let name : String = (indexPath.row>0) ? "Bob" : "Sam";
Reference

J-Dizzle
- 4,861
- 4
- 40
- 50