【发布时间】:2016-03-31 04:45:04
【问题描述】:
我使用 Swift2 和 Xcode 7.1
我想在单击 tableViewCell 中存在的 collectionCell 时触发 segue。
只有我有一个标识符错误。
然而,我已经在我的故事板中说了我的好话。
由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'Receiver () has no segue with identifier 'look''
class PostsCell: UITableViewCell, UICollectionViewDataSource, UICollectionViewDelegate {
var controller: PostsController!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
controller.perform(data![indexPath.item])
}
// ...
}
我的控制器:
class PostsController: UITableViewController {
// ....
override func viewDidLoad() {
super.viewDidLoad()
// ...
}
// ...
func perform(post: Post) {
self.post = post
self.performSegueWithIdentifier("look", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "look") {
let viewController:SeePostController = segue.destinationViewController as! SeePostController
viewController.data = self.post
}
}
}
【问题讨论】:
-
是的,我也有同样的问题...
-
我不能让我的行带有“self.performWithIdentifier()”。否则,我的代码无法编译...
-
你在 PostCell 中有错误吗?从那里删除 self.performSegueWithIdentifier("look", sender: self) 并将其保存在 PostsController 中。
-
在这种情况下我有一个标识符错误
-
太好了,很高兴它对你有用。祝你好运:)