2010-07-15 4 views
0

Я создал пользовательский интерфейс UIWebView. На каком-то классе, если я включаю свой пользовательский интерфейс UIWebView, мне нужно знать, завершена ли загрузка веб-представления или нет. Я могу получить это в пользовательском классе с помощью webViewDidFinishLoad, но как передать это в Main view, где я добавляю этот пользовательский интерфейс UIWebView. Мне нужно включить некоторую кнопку при загрузке WebView.Как установить уведомление в iPhone

Я надеюсь, что вы сможете понять. Thanks

ответ

1

Я думаю, что хорошим решением является создание шаблона делегата. Вы можете передать класс (которые включают в себя UIWebView) в качестве делегата, а затем, когда финишная UIWebView, вам просто нужно перезвонить этот класс, чтобы уведомить

В пользовательском UIWebView:

UIMyWebView.h: 

@property (nonatomic, assign) id delegate; 
@property (nonatomic, assign) SEL callback; 

- (id)initWithDelegate:(id)delegate callback:(SEL)callback; 

UIMyWebView.m: 


- (id)initWithDelegate:(id)aDelegate callback:(SEL)aCallback { 
    delegate = aDelegate; 
    callback = aCallback; 
} 

- webViewDidFinishLoad { 
    [delegate performSelector:callback]; 
} 

YourCaller.m: 

- finishLoading { 
    // do something when finish loading 
} 

- myMethod { 
    UIMyWebView *webView = [[UIMyWebView alloc] initWithDelegate:self callback:@selector(finishLoading)]; 
} 
+0

Спасибо, но может у пожалуйста, дайте мне знать, как создать делегат для этого. Было бы здорово, если бы вы представили пример. Это поможет мне научиться этим :) – iPhoneDev

+0

ОК, просто изменил ответ – vodkhang

+0

Один быстрый вопрос, можем ли мы сделать то же самое, используя @protocol. Подобно использованию id ... заранее спасибо – iPhoneDev

Смежные вопросы