簡體   English   中英

有沒有辦法通過Objective-C中的Delegates發送對象

[英]Is there a way to send an object via Delegates in Objective-C

我有一個場景,我在等待uiwebview完全加載,然后一個完成后從finishedWebViewLoading調用的委托。 但是,我想在完成加載作為另一個類的私有對象的對象時返回該webView。 無論如何通過代表這樣做? 我不希望將uiwebview作為公共財產,因此我在我的主文件中使用了它。

謝謝。

確定你可以這樣做..在.h

@protocol yourClassProtocal <NSObject>

- (void) loadingFinsihForWebView:(UIWebView*)wv;

@end

並在webView委托webViewDidFinishLoad

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [delegate loadingFinsihForWebView:webView];
}

你的問題的答案是:是的。 但是,我相信您可能需要了解委托如何工作以及如何創建它們,這篇文章可能會讓您走上正確的道路: 委托如何在Objective-C中工作?

另外,看看這篇文章: http//blog.shoguniphicus.com/2011/10/17/writing-custom-delegate-in-objective-c/

你可以用這個:

 if([self.theDelegate respondsToSelector:@selector(loadData:)]) {
        [self.theDelegate performSelector:@selector(loadData:) withObject:theObject]; 

我不確定我理解你的要求,但你不能從(void)webViewDidFinishLoad:(UIWebView*)webView返回任何值,也不能更改委托簽名。

另一方面,如果您打算從webViewDidFinishLoad調用另一個自定義委托方法,並且您希望它返回webView ,那么這絕對是可能的。 只需調用該自定義委托方法並將webView傳遞給它,然后使自定義委托方法返回它。

這假設您負責自定義委托方法簽名的定義,例如:

@protocol CustomDelegateProtocol
    - (UIWebView*)myCustomDelegateMethod:(UIWebView*)view;
@end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM