Vai al contenuto

Creare due interfacce utenti collegate


Messaggi raccomandati

Ciao a tutti. Mi sono affacciato da poco al mondo della programmazione ma devo svolgere un lavoro già piuttosto complicato per le mie conoscenze.

Il mio problema è questo: Ho un' interfaccia grafica con alcune textField. Affianco ad una di queste textField ci deve essere un bottoncino che se premuto mi deve far aprire un altra pagina con altre textField.

Il mio problema è proprio creare questo collegamento.

Sarei molto grato se riusciste ad aiutarmi.

Link al commento
Condividi su altri siti

Linguaggio? Piattaforma?

objective-c mac OS X...hai ragione non ho segnato nulla...il mio compito comunque è riscrive un applicazione (che è stata scritta in delphi ) attraverso Xcode con objective-c...questa applicazione riceve 7 valori di temperature e poi attraverso questi valori deve fare un calcolo...io ho creato la prima interfaccia con interface builder però poi devo fare in modo che si possa aprire un altra finestra cliccando su un checkBotton ed in questa finestra devo poter mettere altri valori prima di eseguire il calcolo finale.

Spero di essere stato più chiaro questa volta :P (purtroppo non sono molto esperto di informatica e programmazione, però vorrei fare questa cosa al meglio)

Link al commento
Condividi su altri siti

Beh... ci sono vari modi....

Il più semplice è: dentro lo stesso .xib dove hai la finestra principale, crei l'altra finestra e ne tieni un outlet.

Poi... il bottone che deve aprire la finestra, semplicemente chiama makeKeyAndOrderFront sull'outlet....

Cercando su internet ho trovato un altro modo, ma non so se è stato il più giusto. Ho creato un altro file.xib di tipo NSWindowController e poi ho creato un'altra classe ControllerWindow1 in cui ho implementato le istruzioni che comandano la finestra. A funzionare funziona però ora sto avendo problemi perchè non riesco a prendere i valori che inserisco nella finestra principale e ad utilizzarli nella seconda finestra.

Link al commento
Condividi su altri siti

Cercando su internet ho trovato un altro modo, ma non so se è stato il più giusto. Ho creato un altro file.xib di tipo NSWindowController e poi ho creato un'altra classe ControllerWindow1 in cui ho implementato le istruzioni che comandano la finestra. A funzionare funziona però ora sto avendo problemi perchè non riesco a prendere i valori che inserisco nella finestra principale e ad utilizzarli nella seconda finestra.

Nella classe Controller nel file di implementazione ho usato questo codice:

-(id)init

{

self = [super init];

if (self) {

//inizialization code here.

}

return self;

}

-(IBAction) showController:(id) sender

{

if (!windowController1) {

windowController1 = [[WindowController1 alloc] initWithWindowNibName:@"trWindow"];

}

[windowController1 showWindow:self];

}

-(void) dealloc

{

[super dealloc];

}

Link al commento
Condividi su altri siti

Cercando su internet ho trovato un altro modo, ma non so se è stato il più giusto. Ho creato un altro file.xib di tipo NSWindowController e poi ho creato un'altra classe ControllerWindow1 in cui ho implementato le istruzioni che comandano la finestra. A funzionare funziona però ora sto avendo problemi perchè non riesco a prendere i valori che inserisco nella finestra principale e ad utilizzarli nella seconda finestra.

Direi che è anche più giusto, perché tieni separati i due xib.

Però.. non essendo lo stesso controller che gestisce le due finestre è un po' più complessa appunto la gestione dei dati.

Diciamo che... se MainController è il NSWindowController principale e SubController quello secondario dovresti fare qualcosa del tipo:

//classe MainController

- (IBAction)showSubPanel:(id)sender
{
    if (!subController) { //sub controller è una ivar di MainController
        subController = [[subController alloc] initWithWindowNibName:@"SubWindow"];
     }
    subController.data = myData; // passi tramite properties o metodi i dati all'altro controller
    [subController showWindow:sender]; //mostri la finestra
}


Link al commento
Condividi su altri siti

Direi che è anche più giusto, perché tieni separati i due xib. Però.. non essendo lo stesso controller che gestisce le due finestre è un po' più complessa appunto la gestione dei dati. Diciamo che... se MainController è il NSWindowController principale e SubController quello secondario dovresti fare qualcosa del tipo:
 //classe MainController - (IBAction)showSubPanel:(id)sender { if (!subController) { //sub controller è una ivar di MainController subController = [[subController alloc] initWithWindowNibName:@"SubWindow"]; } subController.data = myData; // passi tramite properties o metodi i dati all'altro controller [subController showWindow:sender]; //mostri la finestra } 

Purtroppo io non sono molto esperto e in modo molto rozzo ho semplicemente modificato il codice come tu mi hai suggerito ma mi ha dato degli errori:

-(IBAction) showController:(id) sender

{

if (!windowController1) {

windowController1 = [[WindowController1 alloc] initWithWindowNibName:@"trWindow"];

}

windowController1.data = taField1 ;

windowController1.data = vaField2 ;

[windowController1 showWindow:self];

}

mi segnala :request for member "data" in something not a structure or a union

Link al commento
Condividi su altri siti

  • 4 settimane dopo...

devi solo spostarti da un viewcontroller ad un altro e quindi da una vista ad un'altra.. con -presentModalViewController oppure se ti trovi in un contesto di navigationController usare pushViewController

Hai un'idea su un'applicazione per iPhone e non sai come realizzarla? Realizzerò io la tua applicazione per te che potrai vendere su App Store beneficiando di tutti i guadagni.

Vuoi imparare a programmare per iPhone? Offro corsi e lezioni private di programmazione per ogni livello di conoscenze.

Contattami via email o visita http://simoneleopizzi.com.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...