2012-02-18 7 views
7

Używam widoku tabeli "Static Cells" utworzonego w moim pliku scenorysu. Jednak chciałbym zaktualizować tekst na jednej z tych komórek, gdy ustawienie zostanie zmienione.Modyfikowanie tekstu w statycznej komórce UITableView?

Pcham kontroler widoku, który aktualizuje ustawienie. Próbuję użyć wywołania zwrotnego, aby zmienić tekst komórki po jej zrzuceniu ze stosu, ale w tym momencie komórka została najwyraźniej poddana recyklingowi lub ponownie użyta, więc stary obiekt jest poza ekranem i nie jest już używany w widoku tabeli.

Czy istnieje sposób, w jaki mogę zaktualizować ten tekst i uczynić go stałym (tak, że po przewinięciu komórki poza ekranem i ponownym wyświetleniu pojawia się nowa wartość)?

+0

Dlaczego chcesz zaktualizować tekst do komórki, która jest poza ekranem? Należy pamiętać, że komórki można poddać recyklingowi. Zaktualizuj je odpowiednio. – Mark

+0

Nie będziesz musiał używać komórek statycznych. Musisz skonfigurować delegata, aby utworzyć zmienioną wersję komórki, gdy pojawi się ponownie. – Tobias

Odpowiedz

19

Zakładając stole widok hierarchii jest wzdłuż linii:

Table View (static cells) 
- Table View Section 
    - Table View Cell 
    - UILabel (with the text property you want to modify) 
  1. Deklarowanie IBOutlet UILabel w kodzie, a drut go w storyboard na UILabel w tabeli widoku hierarchii powyżej.
  2. W swojej metodzie zwrotnej ustaw właściwość tekstową UILabel według własnego uznania.
0

można przechowywać tekst, który chcesz zmienić, jako własność i używać go w:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = super.tableView(tableView, cellForRowAtIndexPath: indexPath) 

    switch (indexPath.section, indexPath.row) { 
    case (0, 3): 
     cell.textLabel?.text = yourProperty 

    default: break 
    } 

    return cell 
}