Vai al contenuto

Benvenuto nella community di Italiamac Forum

Guest Image

Benvenuto su Italiamac, la più grande comunità AMUG italiana riconosciuta da Apple. La consultazione è libera. Se vuoi anche partecipare attivamente alle discussioni pubblicando post e messaggi puoi iscriverti gratuitamente, avrai molti vantaggi:

  • Pubblicare post, messaggi e richieste di aiuto
  • Fare amicizia e usare i messaggi privati fra utenti
  • Pubblicare annunci di vendita di usato
  • Usare tutte le funzioni della community

ISCRIVITI GRATIS


Change Mode






Ricaricare TableVievController dentro un container


eugenio5

Recommended Posts

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 di questo messaggio
Condividi su altri siti

 

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 di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti

Archived

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...

Info

Questo sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego e dichiari di aver letto e di accettare: Privacy Policy Termini di utilizzo