昨天在做一个TableViewCell点击的跳转、传值时遇到了问题,今天总结一下
同StoryBoard文件,通过Segue跳转
StoryBoard中
首先在StoryBoard中选中Cell,向第二个页面连线,创建Segue
点击连线。为Segue设置identifier
代码跳转、传值
首先在摇跳转到的页面设置一个变量用来接受传值var id:String?
在第一个页面的ViewController中重写prepareForSegue
方法
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//判断segue.identifier
if segue.identifier == "AboutUsSegue"{
//实例化第二个页面
let page2:NextViewController = segue.destinationViewController as! NextViewController
//传值
page2.id = dataArray[tableView.indexPathForSelectedRow!.row].id
page2.titleOfNavi.title = dataArray[tableView.indexPathForSelectedRow!.row].title
}
}
这里用到了tableView.indexPathForSelectedRow
这个属性,这个属性的值即为选中的cell的indexPath
不同界面纯代码跳转
这次的App使用了iOS9提供的新特性,故事版引用,将界面分成了很多个StoryBoard文件。
做了好久才发现给的数据都是一个形式的,可以跳转到同一个页面?
只好在代码里实现了
这次我们通过didSelectRowAtIndexPath
方法来实现
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//拿到storyBoard
let storyBoard = UIStoryboard(name: "AboutUs", bundle: nil)
//拿到ViewController
let nextPage = storyBoard.instantiateViewControllerWithIdentifier("NextViewController") as! NextViewController
//传值
nextPage.id = joinUsDataArray[indexPath.row].id
nextPage.titleOfNavi.title = joinUsDataArray[indexPath.row].title
//跳转
self.navigationController?.pushViewController(nextPage, animated: true)
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。