2013-02-14 73 views
0

我試圖傳遞一個錶行的標籤時,當你點擊行的附件按鈕,因爲它匹配了plist中的數組的鍵,所以下一頁知道哪個數組從中加載設置。iOS通過UITableView中的行的標籤

這是我在performSegueWithIdentifier使用目前的代碼:

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
SettingsViewController *destViewController = segue.destinationViewController; 
destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row]; 
每次拿起第一排時間

可惜......我知道,因爲使用NSLog它總是給相同的輸出(名字第一行)。有任何想法嗎?

乾杯,

克里斯

回答

1

的問題是,當你點擊一個細胞的附件按鈕,電池本身不會被選中(這是正常的行爲,因爲附件按鈕觸發不同的委託方法),所以你總是得到0

你可以做的事情是在tableView:accessoryButtonTappedForRowWithIndexPath:委託方法中設置一個帶有選定索引的ivar,並將該ivar傳遞給目標控制器。我希望這是有道理的......

+0

感謝,我給它一個去 – 2013-02-14 13:40:21

+0

這個工作,非常感謝你! – 2013-02-14 13:43:42

+0

@ChrisByatt不客氣:)如果你願意,隨時接受答案。 – Alladinian 2013-02-14 13:44:51

1

使用-prepareForSegue:sender:而不是-prepareForSegue:並使用以下:

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

    NSIndexPath *indexPath = [[[segue sourceViewController] tableView] indexPathForCell:sender]; 

    SettingsViewController *destViewController = segue.destinationViewController; 

    destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row]; 
} 
+0

感謝您的意見:) – 2013-02-14 13:53:33

+0

不客氣:)! – Tieme 2013-02-15 14:28:46