Jak mohu nastavit regulátor pohled jako delegát na dvou věcech (jako je LocationManager a akcelerometru)?

hlasů
3

Omlouvám se, jestli můj titul otázka se zdá zásadně neinformovaný. Dovolte mi vysvětlit, co se snažím dělat.

I definovali následující UIViewController podtřídy, která vystřeluje do LocationManager a má tlačítko Spustit záznam pro uložení GPS stopu.

Nyní bych chtěl také oheň akcelerometru a umožňuje uživateli zaznamenat, že stejně.

Můj ViewController podtřídy je LocationManager delegáta, tak co bych měl použít pro Akcelerometr delegáta? Mohu použít stejný názor, nebo musím definovat subview?

Zde je rozhraní pro mou UIViewController podtřídy:

@interface RootViewController : UIViewController <CLLocationManagerDelegate> {
    NSMutableArray *eventsArray;
    NSManagedObjectContext *managedObjectContext;
    CLLocationManager *locationManager;
    BOOL recording;
    UILabel *pointLabel;
    UIButton *startStop;
}

-(void)toggleButton;

Mohu přidat více kódu v případě potřeby, ale myslím, že to je vše, co platí. Díky za pomoc, já jsem jen dostat se do vývoje pro iPhone, a moje odbornost, jestli mám vůbec, spočívá v ukazatel méně programovacích jazyků :)

Položena 09/07/2009 v 23:52
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
8

Je naprosto logické, aby jeden objekt regulace bude delegát na více než jednu věc. Jedinou kicker by bylo, kdyby oba vaše LocationManager a vaše Akcelerometr náhodou delegáta metody, které se překrývají, tj jestliže oba vyžadují, aby jejich delegátů v reakci na metodu se stejným podpisem.

Kromě toho, měli byste jednoduše nastavit regulátor být delegát pro oba, mnohem stejným způsobem jej nastavit tak, aby byl delegát na jednom:

@interface Controller : UIViewController
    <CLLocationManagerDelegate, AccelerometerDelegate>
{
    ...
}

A později:

[myLocationManager setDelegate:myController];
[myAccelerometer setDelegate:myController];

Prosím, omluvte pojmenování. Nevím, z vrcholu mé hlavy, jaké jsou názvy pro třídy akcelerometr a LocationManager, které budete potřebovat. Jen jsem použil, co popisná jména přišlo na mysl :)

Odpovězeno 10/07/2009 v 00:15
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more