2011-12-30 6 views
8

prepareForSegueメソッド内のセクション化されたテーブルビューで選択された行の位置にアクセスできますか?iOS:セクション化されたテーブルビューで行の位置を取得

これはセグエのために私のコードです:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

if ([[segue identifier] isEqualToString:@"CurrentEvent"]) { 

    Tab1_DetailTableViewController *vc = [segue destinationViewController]; 

    // get the selected index 
    NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row]; 

} 
} 

私が直接位置をアクセスもするいくつかの方法を見上げたが、私は1つを見つけることができませんでした。私は何かを監督していると思う。誰も方法を知っていますか?

+0

私はわからないんだけど私は理解して..あなたのコードで 'selectedIndex'は、選択された行の行の位置ですか? –

答えて

23

選択indexpath取得するには:

:選択された細胞を得るために選択された部分

NSUInteger selectedSection = selectedIndexPath.section; 

を得るために選択された行

NSUInteger selectedRow = selectedIndexPath.row; 

を取得する

NSIndexPath *selectedRowIndexPath = [self.tableview indexPathForSelectedRow]; 

UITableViewCell *selectedCell = [self.tableview cellForRowAtIndexPath:selectedRowIndexPath]; 
SWIFT 2.2で
+1

ありがとうございました –

+1

なぜ 'prepareForSegue'の中で私のために働いているのですか? – Segev

+0

行を迅速に取得するには、 'self.tableView.indexPathForSelectedRow()?row。')を使用します。 – User

0

はcellForRowAtIndexPathデリゲートにあなたのセルのタグを取得します。その後、

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! taskCell 
     cell.tag = indexPath.row    
     return cell 
    } 

そしてprepareForSegueのtrought送信者にそれをcaputure:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "yourSegue" { 
     let vc = segue.destinationViewController as! destinationControllerClass 
     vc.passedIndex = sender?.tag 
    } 
} 
関連する問題