eugenio5 Inviato 19 Aprile 2014 Segnala Condividi Inviato 19 Aprile 2014 Ciao a tutti, ho una vista con all'interno un container che contiene un textfield, un button e un containerview che a sua volta contiene una tableviewcontroller. Ecco uno screenshot per capire meglio: http://oi61.tinypic.com/kcf7tw.jpg Quello che vorrei fare è che, alla pressione del pulsante, popolare la tabella in base al testo immesso nel textfield. Per passare i valori dalla vista principale al container uso singletons, ma non riesco a capire come eseguire le istruzioni di popolamento ogni volta che premo il tasto. Come faccio a fare capire al controller che contiene la tabella che è stato premuto il tasto, e che quindi deve ripopolare le righe? Girando nei vari forum ho trovato questo codice da inserire nel controller principale ma non funziona (sicuramente sbaglio qualcosa). UITableViewController *tbc; [tbc.tableView reloadData]; Sapreste dirmi come posso fare? Grazie mille anticipatamente a tutti! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Kendall Inviato 20 Aprile 2014 Segnala Condividi Inviato 20 Aprile 2014 Ciao a tutti, ho una vista con all'interno un container che contiene un textfield, un button e un containerview che a sua volta contiene una tableviewcontroller. Ecco uno screenshot per capire meglio: http://oi61.tinypic.com/kcf7tw.jpg Quello che vorrei fare è che, alla pressione del pulsante, popolare la tabella in base al testo immesso nel textfield. Per passare i valori dalla vista principale al container uso singletons, ma non riesco a capire come eseguire le istruzioni di popolamento ogni volta che premo il tasto. Come faccio a fare capire al controller che contiene la tabella che è stato premuto il tasto, e che quindi deve ripopolare le righe? Girando nei vari forum ho trovato questo codice da inserire nel controller principale ma non funziona (sicuramente sbaglio qualcosa). UITableViewController *tbc; [tbc.tableView reloadData]; Sapreste dirmi come posso fare? Grazie mille anticipatamente a tutti! Detta così è un po' difficile da capire. Allora, se utilizzi una containerview significa che assegni alla stessa un suo viewcontroller (che in tal caso, se non ho capito male, sarà un tableviewcontroller). Se così è, quando vuoi "refreshare" il contenuto di quella tableview ti basterà chiamare sul tableviewcontroller il comando che hai detto. Il problema con il codice che hai postato tu è che essenzialmente non fa proprio nulla. Tu dichiari un puntatore ad un UITableViewController ma neppure lo inizializzi. Pertanto è normale che non faccia nulla, in quanto mandi dei messaggi ad un puntatore nullo (e nell'objective c, mandare messaggi a puntatori nulli semplicemente non produce nessun risultato, e neppure lancia un'eccezione). Quindi devi modificare quel codice assegnando al puntatore di tipo UITableViewController l'istanza dell'UITableViewController che hai inserito nella containerview. Ancora meglio, visto che devi agire spesso sul tableviewcontroller, all'avvio del programma, quando inizializzi il containerview con l'uitableviewcontroller, salvati quest'ultimo in una variabile privata così da avervi accesso diretto e semplice ogni qualvolta ti serva. Link al commento Condividi su altri siti Altre opzioni di condivisione...
eugenio5 Inviato 22 Aprile 2014 Autore Segnala Condividi Inviato 22 Aprile 2014 Detta così è un po' difficile da capire. Allora, se utilizzi una containerview significa che assegni alla stessa un suo viewcontroller (che in tal caso, se non ho capito male, sarà un tableviewcontroller). Se così è, quando vuoi "refreshare" il contenuto di quella tableview ti basterà chiamare sul tableviewcontroller il comando che hai detto. Il problema con il codice che hai postato tu è che essenzialmente non fa proprio nulla. Tu dichiari un puntatore ad un UITableViewController ma neppure lo inizializzi. Pertanto è normale che non faccia nulla, in quanto mandi dei messaggi ad un puntatore nullo (e nell'objective c, mandare messaggi a puntatori nulli semplicemente non produce nessun risultato, e neppure lancia un'eccezione). Quindi devi modificare quel codice assegnando al puntatore di tipo UITableViewController l'istanza dell'UITableViewController che hai inserito nella containerview. Ancora meglio, visto che devi agire spesso sul tableviewcontroller, all'avvio del programma, quando inizializzi il containerview con l'uitableviewcontroller, salvati quest'ultimo in una variabile privata così da avervi accesso diretto e semplice ogni qualvolta ti serva. Grazie Kendall, ma non ho ben capito dove creare l'istanza del container view all'interno della vista principale. Hai per caso un esempio oppure dei link di approfondimento? Ti ringrazio. PS: buona Pasqua a tutti anche se in ritardo! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Kendall Inviato 22 Aprile 2014 Segnala Condividi Inviato 22 Aprile 2014 Grazie Kendall, ma non ho ben capito dove creare l'istanza del container view all'interno della vista principale. Hai per caso un esempio oppure dei link di approfondimento? Ti ringrazio. PS: buona Pasqua a tutti anche se in ritardo! La ContainerView l'hai già creata tramite Interface Builder a quanto vedo. Quindi basta che ti crei un Outlet all'interno del tuo ViewController principale (quello che gestisce la vista principale) che punti alla ContainerView, e tramite quell'outlet vai ad inserire il tableviewcontroller dentro alla containerview. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.