我正在尝试以编程方式执行segue"但它一直给我一个错误,说我的视图控制器没有这个id
的segue这是我的故事板的一部分
这是我执行segue
的方法func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
self.performSegueWithIdentifier("show recipe details" , sender: self)
}
这是执行segue方法
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if(segue.identifier == self.SEGUE_ID)
{
if((sender?.isKindOfClass(RecepieViewController)) != nil)
{
if(segue.destinationViewController.isKindOfClass(RecipeDetailsViewController))
{
print("seguee")
}
}
}
}
出了什么问题?
这是我的storyboard xml文件
答案 0 :(得分:0)
确保在"显示食谱详细信息"之后没有空白区域。在属性检查器中的标识符名称中(ig。:"显示配方详细信息")。
答案 1 :(得分:0)
几个问题:
"show recipe details"
,而在另一个功能中使用self.SEGUE_ID
。为什么不在两个地方使用那个常数来避免混淆。 Swift nit:您可以更轻松地在Swift中执行isKindOfClass()
代码,如下所示:
if let recipeViewController = sender as? RecepieViewController {
if let recipeDetailsViewController = segue.destinationViewController as? recipeDetailsViewController {
// Got the right view controllers
}
}
答案 2 :(得分:0)
将故事板显示为源(xml格式),然后搜索“显示配方详细信息”。这将确认您期望的segue ID是否实际存在于代码中,或者是否存在创建问题的无关字符。