2012-02-02 16 views
9

Sto costruendo un'app per iOS e ho costruito la maggior parte del codice/GUI (è una app a vista singola). Ora ho il file .xib e controller.h uno accanto all'altro e voglio associare un clic del pulsante con una determinata azione. Ogni volta che provo non succede nulla. L'indicatore dell'interfaccia utente che sto trascinando si presenta ma non mi consente di connettermi al metodo. Questo succede per tutti gli oggetti/metodi.Ctrl-Trascina dal pulsante al metodo non funzionante. Xcode/Interface Builder

Ho un progetto quasi identico che funziona anche bene!

risposta

20

Selezionare il file XIB e quindi selezionare "Proprietario file" che è il cubo giallo. Nella barra laterale Utilità, selezionare l'icona con il cerchio e la freccia al suo interno (che è "Ispettore connessioni"). Puoi quindi Control + trascinare il tuo al tuo pulsante.

//// //// Modifica

Dopo aver esaminato il progetto ... Abbastanza sicuro è stato eliminato uno storyboard e poi aggiunto un .xib ma non è impostato è di classe, o un collegamento è vista come una presa.

per farlo:

  1. Selezionare la nuova vista (XIB), quindi selct vista principale, e nella finestra di ispezione identità, impostare è di classe per la vostra abitudine nome di classe "AVYSViewController."

  2. Passare all'ispettore connessioni e Control + Trascinare l'uscita "vista" nella vista principale in XIB.

Inoltre, il progetto cercava il file MainStoryBoard.storyboard. Quindi, elimina quell'impostazione selezionando il tuo progetto, quindi selezionando il tuo obiettivo, e nella scheda "Sommario", elimina qualsiasi cosa nel campo "Mainboardboard".

Nota: ho controllato se le impostazioni del progetto erano valide prima di aver eliminato l'impostazione dello storyboard e non ha restituito errori, quindi fai attenzione a questo problema per i progetti futuri.

+0

mi dispiace di averti seguito correttamente, non capisco il finale. dopo che ho preso l'ispettore di connessione, cosa sto trascinando al mio pulsante? – Dreken105

+0

Dovresti trascinare la tua azione, che verrebbe elencata in "Azioni ricevute" nella finestra di ispezione delle connessioni. Se non è lì, potresti avere alcuni problemi di codice che dovremmo esaminare. – jhilgert00

+0

sembra che ci sia. cosa ti serve che ti mostri? solo il controller.h? – Dreken105

0

Penso che dovresti riformulare la domanda .. È molto confuso. Ma se capisco cosa stai dicendo, ora hai i file aperti fianco a fianco nell'uso dell'assistente editor. Il file Xib sul lato sinistro, il file .h sulla destra. corretta?

Ora si sta tentando di collegare l'evento nel controllo, al metodo definito nel file .h. destra?

Quindi, se siete infatti vedere i metodi nel file .h che si desidera collegare, ma l'editore non è che ti permette di collegare ad esso, quindi le probabilità sono che avete avere il file XIb lato- di lato con il file .h sbagliato. Sei sicuro che il file .xib e il .h che sono side-by-side sono entrambi chiamati controller? controller.h e controller.xib?

+0

sì sicuramente i file giusti e hai interpretato correttamente la domanda. dispiace per la confusione. – Dreken105

+0

Ok se sono uguali, allora quale controllo provare a collegare il metodo è un pulsante? se è un pulsante, assicurati di avere un metodo definito come ** - (IBAction) myMethod: (id) mittente; ** Stai facendo così? –

+0

yep: '- (IBAction) showQuestion: (id) mittente; - (IBAction) showAnswer: (id) mittente; ' – Dreken105

1

Penso di leggere lo stesso libro di te ("Programmazione iOS" di Big Nerd Ranch). Se è così allora sì, ho avuto lo stesso problema di te. Devo dire che sto usando il mio computer portatile per vnc fino a un mac box per lavorare su xcode, quindi ho pensato che fosse vnc a non catturare correttamente la tastiera, ma risulta che non era vnc dato che potevo fare clic con il tasto destro/cntl-click altre cose.

Ricentemente non ho fatto molte ricerche sul motivo per cui non funzionava, ma nel frattempo ho appena fatto clic con il pulsante destro del mouse sul pulsante, che mostra gli eventi che il pulsante emette, quindi trascinato il "Touch" Up Inside "e l'ha rilasciato sul controller/proprietario, che ha poi visualizzato le azioni/i metodi per agganciare l'evento a. Se si guarda a pagina 17 (se stai leggendo lo stesso libro), allora questo è l'evento che è stato collegato.

Scusate se ci sono errori evidenti evidenti con quello che ho appena detto, ho appena iniziato a leggere questo libro oggi dopo un grande pranzo.

Problemi correlati