は、まあ、それはスワイプのように見える次のエラーメッセージを与えている行で
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "recipeDetail") {
let indexPath = self.tableView!.indexPathForSelectedRow
let destinationViewController: DetailViewController = segue.destinationViewController as! DetailViewController
destinationViewController.recipe = recipes[indexPath!.row]
}
else if segue.identifier == "yourSegueIdentifier"
{
let indexPath = self.tableView!.indexPathForSelectedRow
let nextVC: WebViewController = segue.destinationViewController as! WebViewController
nextVC.recipe = recipes[indexPath!.row]
}
}
tableViewは "indexPathForSelectedRow"メソッドを登録しません。 何を交互に可能性は、セットアップが
class ViewController: UIViewController{
var swipeIndex : Int!
//Code, code, code...
変数、その後スワイプアクションが呼ばれたら、それを設定するグローバルswipeIndexです。
let sendToWebsite = UITableViewRowAction(style: .Default, title: "Website")
{ (action, indexPath) in
self.swipeIndex = indexPath.row
self.performSegueWithIdentifier("yourSegueIdentifier", sender: nil)
}
sendToWebsite.backgroundColor = UIColor.blueColor()
return [sendToWebsite]
}
、その後:あなたの行が選択された状態ではないおそらくので
else if segue.identifier == "yourSegueIdentifier"
{
let indexPath = self.tableView!.indexPathForSelectedRow
let nextVC: WebViewController = segue.destinationViewController as! WebViewController
nextVC.recipe = recipies[self.swipeIndex]
}
}
indexPathForSelectedRowは、nilを返しています。テーブルビューで選択を有効にしましたか? 'didSelectRowAtIndexPath'デリゲートメソッドを実装しましたか?行をスワイプしても自動的には選択された状態にはなりません。 – SArnab