2015-08-08 80 views
0

我有一個靜態視圖,它是一個設置視圖。它有3個部分靜態UITableView瘋狂

section 1 has 3 rows 
section 2 has 1 row 
section 3 has 1 row 

我在每一行連接了UISwitch,這一切工作正常。最後一行s3-r1我需要對選擇做出反應。它的一個UITableViewController我重寫didDeselectRowAtIndexPath並添加:

if indexPath.section == 2 && indexPath.row == 0 { 
    // do something here - yes there's more than a comment in here 
} 

什麼也沒有發生。所以我做到了這一點:

override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 

    println("section \(indexPath.section) row \(indexPath.row)") 
} 

無論我從哪裏開始,我選擇的第一行都沒有打印任何內容,那麼它們都無序。例如。

user action    = println output 
touch section 1 - row 1 = (nothing+ 
touch section 1 - row 2 = section 0 row 0 
touch section 1 - row 3 = section 0 row 1 
touch section 2 - row 1 = section 0 row 2 
touch section 3 - row 2 = section 1 row 0 

接下來,我創建了一個出口,以我想反應的細胞,並試圖這個代替:

let cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 
if cell == cellOutlet { 
    println("!!!") 
} 

這可以打印,但隨機從不同的細胞

我一直在google搜索小時我不知道發生了什麼。爲什麼看似隨機的順序?幫助歐比旺

+0

「無論我從哪裏開始,我選擇的第一行都不會打印任何內容,那麼它們都會出錯」其實它們完全正確。您正在登錄_deselect_。直到您選擇_else_纔會運行。所以你選擇第一行,沒有任何被取消選擇。你選擇第二行,並且_first行被取消選擇並且你得到「0行0」,這是完全正確的。 – matt

+0

#^ $%#$#&我可以做多少次。 。 。我是一個白癡,謝謝 – rjb101

+0

有時它只需要另一雙眼睛。您確實收集了所有數據並提供了所有信息,因此您做了所有正確的工作,並且用足夠的數據提出了問題。那很好! – matt

回答

3

該問題似乎是你已經覆蓋了錯誤的方法。這不是didDeselect你關心 - 它是didSelect。覆蓋方法,你會沒事的。