come aggiungere voci di elenco in vista tabella in rapida 5

voti
0

Sto cercando di aggiungere elementi a una visualizzazione della tabella. Posso vedere che ogni volta clic sul pulsante nuovo inserti riga nella tabella, ma la cella è vuota. Quando il debug del codice posso vedere tutti gli elementi della lista, ma non riesco a vederli visualizzati sulla applicazione stessa. Le voci 1, 2 e 3 non vengono visualizzati come pure

@IBOutlet weak var itemLbl: UITextField!
    var items: [String] = [1, 2, 3]

override func viewDidLoad() {
        super.viewDidLoad()
        tableView.tableFooterView = UIView(frame: CGRect.zero)


    }

func insertItem(){
    items.append(itemLbl.text!)

    let indexPath = IndexPath(row: items.count - 1,section: 0 )
    tableView.beginUpdates()
    tableView.insertRows(at: [indexPath], with: .automatic)
    tableView.endUpdates()
    itemLbl.text = 
    view.endEditing(true)
}

Quindi l'inserto funziona, ma io proprio non può visualizzare il testo nella tabella. Io capisco una nuova cella per ogni articolo che aggiungo, ma il suo spazio vuoto solo bianco, invece del valore che ho solo aggiunto

MODIFICARE:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let itemLbl  =  items[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: ItemCell) as! ItemCell

        cell.itemLbl.text = itemLbl
        return cell
    }
È pubblicato 02/12/2019 alle 23:56
fonte dall'utente
In altre lingue...                            


3 risposte

voti
0

Hai provato a usare tableView.reloadData()? Inoltre, non forzare unwrap itemLabel.text.

func insertItem(){
    if let itemText = itemLabel.text {
       items.append(itemText)

       tableView.reloadData()
    }
}

Assicurarsi di aggiungere anche tableView.reloadData()a fine viewDidLoad().

Risposto il 03/12/2019 a 00:16
fonte dall'utente

voti
1

E 'meglio ricaricare la tabella ogni volta che la vostra fonte di dati cambia, che si può fare in questo modo:

var items: [String] = ["1", "2", "3"] {
    didSet {
        tableView.reloadData()
    }
}

func insertItem(){
    if let text = itemLbl.text { 
        items.append(itemLbl.text)
    }
}
Risposto il 03/12/2019 a 00:54
fonte dall'utente

voti
0

Ci sono molteplici possibilità che potrebbero causare questo problema. La prima cosa che si dovrebbe verificare è che nel tuo elenco, assicurarsi che si sta utilizzando un identificatore di riutilizzo per il prototipo di cella e che si fa riferimento di esso. Inoltre, assicurarsi di ricaricare la tabella ogni volta che si aggiunge un elemento (non sempre farlo come si scaricherà la batteria dell'utente). Se nessuno di questi stanno lavorando, è possibile non si è collegato le prese in modo corretto.

Risposto il 03/12/2019 a 02:24
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more