2012-06-03 34 views
1

我有一個tableView被配置爲推塞恩到另一個視圖。 該表分爲2個部分。 當我推到下一個視圖時,我也會傳輸數據,並且對這些部分有問題。從tablevew dosent work中的2個部分推塞格

比方說,我的部分0有2行,部分1有1行。 如何檢查第1行?

storybaords和preper爲賽格瑞我做

row = indexPath.row; 

if (section == 0) 
{ 
    if (row == 0) 
     data = @"Zero"; 

    if (row == 1) 
     data = @"One"; 
} 

if (section == 1) 
{ 
    if (row == 0) 
     data = @"Two"; 

    if (row == 1) 
     data = @"Three"; 
} 

,現在它不工作了。當我點擊第1部分中的0行時,它將「零」代入「兩個」數據中 爲什麼會這樣? 我如何有效地區別第0節和第1節?

+0

如果indexPath爲零,則會得到section = 0和row = 0。代碼需要更多上下文。如果這些沒有任何問題。 –

+0

也許現在問題更清楚了(我添加了我忘記添加的第一行代碼)。在任何情況下,行都不是零。 –

回答

0

老兄,哪裏是section = indexpath.section? 這裏是一個prepareForSegue的例子;

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    NSIndexPath *indexpath = [self.tableView indexPathForCell:sender]; 
// indexpath.section 
// indexpath.row 
} 
+0

我會嘗試當我回家時,我想我已經嘗試過,但我願意再試一次。 –

+0

Tnx! 我的問題是你說的「indexPathForCell:sender」,我寫了「indexPathForRow:sender」。現在「if部分」工作得很好! –

0
  1. 您應該設置您的數據顯示在cellForRowAtIndexPath:的單元格中。
  2. 您只需將IB中的原型單元格與Push Segue鏈接到下一個視圖控制器即可。
  3. 然後,您使用prepareForSegue將所需的數據傳遞給新視圖控制器。

正確的sectionrow參數將在indexPath變量中。

+0

Tnx Mundi,這正是我所做的。 但我想傳遞不同的數據時,不同部分被按下。我可以區分單元格的唯一方法是「行」而不是部分。 這就是爲什麼當我按0部分0行時,我得到與按1部分0行相同的結果,結果應該是不同的。 –

+0

不可以。您可以檢查'indexPath.section'和'indexPath.row'。 – Mundi