Domanda

La mia domanda può essere un po 'stupido, ma perché non può alcun oggetto istanziato nel manico IB, per esempio, fare clic sul pulsante? Voglio dire che sono in grado di aggiungere il mio proprio oggetto ad una XI ter, e le prese di collegamento per cotrols e controllare le azioni di opporsi di metodo, ma una volta che si preme il pulsante tutto solo in crash (selettore uknown).

voi ragazzi avete un suggerimento intorno a quella?

Modifica : il codice, come richiesto:

@interface TextController {
    IBOutlet UILabel * textLabel;
    IBOutlet UITextField * textField;
}

-(IBAction)buttonClicked:(id)sender;

@end

@implementation TextController

-(IBAction)buttonClicked:(id)sender {
    textLabel.text = @"Ololo";
}

@end

Connessioni in IB sono ok, appena mi creda. E 'davvero difficile per farli sbagliato in tutta questa roba drag'n'drop:)

EDIT 2: TextController non è un proprietario del file (in questo caso funziona benissimo). Tuttavia, voglio solo capire il motivo per cui non posso cablare fino un'azione ad un oggetto (non può essere ancora una sottoclasse di UIViewController).

È stato utile?

Soluzione

È possibile collegare le prese e le azioni a qualsiasi oggetto nel pennino-file. Trascinare un NSObject formano la tavolozza libreria sul vostro pennino in file, in Interface Builder. Poi vai alla scheda Identità della tavolozza informazioni e impostare la classe del vostro oggetto.

In questo modo è possibile creare un'istanza qualsiasi oggetto di qualsiasi classe dal pennino. Se il bersaglio si desidera collegare a è creato staticamente dal pennino-file. Assicurarsi che il proprietario del file hanno almeno un riferimento all'oggetto, altrimenti verrà deallocata non appena è stato creato. Gli obiettivi non vengono mantenuti dal mittente.

Se l'oggetto che si desidera collegare non deve essere creato in modo statico dal pennino, quindi implementare awakeFromNib in una classe che è un'istanza dal pennino file e collegare gli obiettivi nel codice.

Ultima opzione è se non si dispone di alcuna sottoclasse della propria nel pennino file a tutti. Quindi implementare initWithNibName:bundle: nella sottoclasse UIViewController, e agganciare i vostri obiettivi nel codice dopo aver chiamato il super implementazione.

Altri suggerimenti

codice postale, questo di solito significa che non dovete le connessioni cablate correttamente. È TextController proprietario del file in IB?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top