Hvordan legge Outlets til en Modal View Controller i din iPad App

August 17  by Eliza

Før du bruker Interface Builder for å lage elementer for Modal visning av iPad app, bør du først sette utsalgssteder i appen din kode som vil koble dine metoder til Interface Builder grensesnittobjekter. Du trenger å gjøre tre ting i koden din for å ha kompilatoren skape accessors for deg:

  1. Erklære en instansvariabel i grensesnittet filen.
  2. Legg enproperty erklæring om at instansvariabel i samme grensesnitt filen (vanligvis med nonatomic attributt).

    Erklæringen angir navn og type av eiendommen, samt noen attributter som gir kompilatoren med informasjon om hvordan akkurat du vil at tilgangsmetoder som skal gjennomføres.

    For eksempel erklæringenproperty (nonatomic, tildele) NSString * wordsOfWisdom; erklærer en eiendom som heter wordsOfWisdom, som er en peker til en NSString objekt. Som for de to attributter - nonatomic og tildele - nonatomic forteller kompilatoren å opprette en tilgangs å returnere verdien direkte, som er en annen måte å si at de accessors kan avbrytes under bruk. Den andre verdien, tildele, forteller kompilatoren å opprette en tilgangsmetode som sender en assign melding til et objekt som er tilordnet til denne eiendommen.

  3. Bruksynthesize i gjennomføringen filen slik at Objective-C genererer accessors for deg.

    Denproperty erklæring bare erklærer at det bør være accessors. Det er densynthesize uttalelse som forteller kompilatoren for å lage dem for deg.

I følgende eksempel kode, må du opprette to uttak: en til å peke på et tekstfelt og en til å peke til en hastighet glidebryteren. For å få dette uttaket virksomheten i gang, må du erklære hvert uttak, som du gjør med hjelp av IBOutlet søkeord.

#import <UIKit / UIKit.h>
protocol SettingsViewControllerDelegate;
interface SettingsViewController: UIViewController {
<SettingsViewControllerDelegate> delegat;
NSString * wordsOfWisdom;
flyte sliderValue;
IBOutlet UITextField * theTextField;
IBOutlet UISlider * glidebryteren;
}
- (IBAction) gjort;
- (IBAction) speedChanged: (id) avsender;
property (nonatomic, tildele) id <SettingsViewControllerDelegate> delegat;
property (nonatomic, tildele) NSString * wordsOfWisdom;
property (nonatomic, tildele) UISlider * glidebryteren;
end
protocol SettingsViewControllerDelegate
- (Void) settingsViewControllerDidFinish: (SettingsViewController *) kontrolleren;
- (Void) changeSpeed: (dobbel) newSpeed;
end

To handling metoder (gjort og speedChanged) for Interface Builder elementer er erklært (med IBAction), sammen med IBOutlet uttalelser, som erklærer de utsalgssteder som vil bli automatisk initialisert med en peker til UITextField (theTextField) og UISlider (stolpe) når programmet startes. Men mens dette vil skje automatisk, det vil ikke automatisk skje automatisk. Du må hjelpe den ut litt.

Metodene som gir tilgang til instansvariabelene av et objekt kalles tilgangsmetoder, og de ​​effektivt får (ved hjelp av en getter metode) og innstilt (en setter metode) verdiene for en instansvariabel. Selv om du kan kode disse metodene selv, kan det være ganske kjedelig. Det er der egenskaper kommer inn. Objective-C Erklært Properties funksjonen gir en enkel måte å erklære og implementere et objekts tilgangsmetoder. Kompilatoren kan syntetisere tilgangsmetoder i henhold til måten du fortalte det til i eiendommen erklæringen.