我有一个视图控制器A,它有一个用单元格动态创建的表格列表 当调用didselectcell为
时func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath)
if(cell?.tag == 1){
performSegueWithIdentifier("profile", sender: self)
print("perform segue for favourite")
}
我打算像这样准备segue并保存变量,该变量在第二个视图控制器中可用
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue == "profile"){
let vc = segue.destinationViewController as! MembersViewController
vc.title = " "
}
当我运行应用程序时,它需要的时间不超过25秒[第二个视图控制器具有collectionview]任何想要更快地完成它的想法
答案 0 :(得分:0)
我通过调用dispatch_async函数解决了这个问题,它立即移动到下一页,下一页也在viewwillappear中进行了循环,感谢@rakeshbs从这个link获得答案
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath)
if(cell?.tag == 1){
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("profile", sender:self)
})
}
答案 1 :(得分:0)
这有一些问题。将您的didSelectRow
方法更改为此。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if(indexPath.row == 0) {
performSegueWithIdentifier("profile", sender: nil)
}
}
您可以修复didSelectRowAtIndexPath
方法以删除需要抓取单元格的内容。它已经引用了单元格的索引,这就是你所掌握的。
此外,您的prepareForSegue
方法可以改进如下:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "profile") {
let vc = segue.destinationViewController as? MembersViewController
vc?.title = "New Title"
}
}
你永远不需要用这样的东西来调用dispatch_async
,特别是在Swift中,除非你已经在后台线程上。
在使用UITableView
对象及其UITableViewDelegate
和UITableViewDataSource
组件之前,我建议您在Xcode Playground中查看,并仔细阅读Apple文档以了解一切是如何运作的。< / p>