2016-03-29 4 views
0

は、私は、iOS用のスライドメニューを作成していますが、私は問題リンゴの迅速slideoutMenu indexPath

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let DestVC = segue.destinationViewController as ViewController 
    let indexPath : NSIndexPath = self.tableView.indexPathForSelectedRow()! 
    DestVC.varView = indexPath.row 
} 

を持っていないのはなぜ、このコードは動作しますか?あなたは、オプションのキャスト原因segue.destinationViewControllerを行う必要があり

+0

を試してみては? –

答えて

0

常にそのサブクラスにキャストすることができないのUIViewController

は、それが動作しない場合はどうなりますこの

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
guard let DestVC = segue.destinationViewController as? ViewController else { return } 
    let indexPath : NSIndexPath = self.tableView.indexPathForSelectedRow()! 
    DestVC.varView = indexPath.row 
} 
+0

私はこの行で常に失敗します let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()! エラーは次のとおりです。オプションの型 'NSIndexPath'の値がアンラップされていません。あなたは '!'を使うことを意味しましたか?または '?' ? –

+0

初めて気付かなかった。 'let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow! 'のようなインデックスパスを取得する必要があります。原因indexPathForSelectedRowは計算されたプロパティではありません。 –

+0

それは今の仕事です!どうもありがとう –