【发布时间】:2016-04-19 23:10:18
【问题描述】:
我用 UISearchController 和 UITableView 创建了一个视图控制器。您可以从搜索范围按钮中选择两种不同类型的搜索:组和人员。两种搜索都有效并在表格上显示结果。但是,如果您单击每个单元格,它们应该会将您定向到不同的动态页面(动态组页面或动态个人资料页面)。用于团体的一种有效,而用于个人资料的一种无效。这意味着每当我从我得到的结果中单击一个人单元格时,什么都不会发生,并且我会在控制台上打印以下警告:
Warning: Attempt to present <MyProject.profileView: 0x13e9df000> on <MyProject.SearchPage: 0x142a1d8f0> which is already presenting <UISearchController: 0x142a1f7c0>
如果您知道为什么会发生这种情况,如果您能告诉我,我们将不胜感激。
编辑:这是应该将单元格链接到不同视图控制器的函数:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if self.searchForGroups {
let detailCell:PFObject = self.filteredGroups.objectAtIndex(indexPath.row) as! PFObject
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("DynamicCellView") as! DynamicCellView
vc.GroupId = detailCell.objectId!
self.presentViewController(vc, animated: false, completion: nil)
}else{
//Link to use profile
let user = self.peopleResults[indexPath.row]
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("ProfileView") as! profileView
vc.profileId = user.objectId!
self.presentViewController(vc, animated: true, completion: nil)
}
}
【问题讨论】:
-
可能你必须通过 UISearchController 呈现它。 self.searchController presentViewController...?
-
我刚刚用将单元格链接到视图控制器的函数代码更新了问题。
-
@EmptyStack 我不认为我完全明白你的意思。你能解释一下吗?感谢您的回答。
-
您是否尝试过使用 segue 而不是实例化视图控制器?你可以调用'performSegueWithIdentifier("segueID")'
标签: ios swift uitableview swift2 uisearchcontroller