Как использовать делегатов в целом (но также и в Soundcloud). - PullRequest
0 голосов
/ 29 июля 2011

Я нуб, когда дело доходит до делегатов, но я уверен, что это будет кусок пирога для более опытных программистов, таких как вы.

Мой делегат приложения настроен так:

@interface iPhoneTestAppAppDelegate : NSObject <UIApplicationDelegate, SCSoundCloudAPIAuthenticationDelegate> {
    UIWindow *window;
    iPhoneTestAppViewController *viewController;
    SCSoundCloudAPI *soundCloudAPIMaster;
}


- (SCSoundCloudAPI *)soundCloudAPIMaster;
{
    if (!soundCloudAPIMaster) {
        SCSoundCloudAPIConfiguration *scAPIConfig = [SCSoundCloudAPIConfiguration configurationForProductionWithConsumerKey:kTestAppConsumerKey
                                                                                                    consumerSecret:kTestAppConsumerSecret
                                                                                                                callbackURL:[NSURL URLWithString:kCallbackURL]];
        soundCloudAPIMaster = [[SCSoundCloudAPI alloc] initWithDelegate:nil authenticationDelegate:self apiConfiguration:scAPIConfig];
        // make shure to register the myapp url scheme to your app :) 
    }
    return soundCloudAPIMaster;
}

, который содержит метод, который вызывается обратно:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

Тогда мой viewController настроен с этим в файле .h:

@interface iPhoneTestAppViewController : UIViewController <SCSoundCloudAPIDelegate> 

, а затем в viewController.m у меня есть метод, который выдвигает веб-представление. По сути, я пытаюсь получить метод обратного вызова из файла делегата для обратного вызова метода в файле viewController.m. (Я хотел бы закрыть свой веб-просмотр при получении обратного вызова).

Есть идеи? Я представил достаточно информации, чтобы расшифровать мою проблему? Это решаемо как общая проблема делегата или это больше специфическая проблема Soundcloud?

РЕДАКТИРОВАТЬ 1

Вот попытка исправить мою проблему, которая не работала:

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июля 2011

просто напишите этот код в событии ViewDidload ...

yourcontrolname.delegate = self;

0 голосов
/ 29 июля 2011

Необходимо установить делегат переменной SoundClound на self, иначе переменная не сможет определить, кто является делегатом.

initWithDelegate:self ....
...