第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在聲明協(xié)議的 controller 中傳參數(shù)給遵循協(xié)議的 controller

在聲明協(xié)議的 controller 中傳參數(shù)給遵循協(xié)議的 controller

三國紛爭 2019-03-30 09:34:55
在聲明協(xié)議的controller中講參數(shù)傳遞給遵循協(xié)議的controller協(xié)議的聲明:@protocoldoSomethingDelegate-(void)doSomething:(NSString*)test;@end聲明協(xié)議的controller中有:[self.delegatedoSomething:parameter];在遵循協(xié)議的controller中:-(void)doSomething:(nsstring*)test{self.para=test;NSLog(@"%@",self.para);}但是這里的self.para并沒有起作用。只是局部變量。nslog會打印出新的值,但在該controller中添加一個按鈕,點擊之后打印self.para,結(jié)果還是舊的值。初學(xué)iOS不久,這個問題不太好Google,不得已求助。真心感謝
查看完整描述

2 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊

先指出題主的delegate協(xié)議定義的問題:
題主可以去看看Apple的文檔,所有的Delegate定義,基本上都要傳一個參數(shù),那就是被委托動作的對象。這里,題主的對象應(yīng)該市一個UIViewController的子類實例。所以題主在定義delegate的時候,應(yīng)該這么定義:
-(ReturnType)controller:(UIViewController*)controllerdoSomething:(ParaType)para;Delegate
名稱上應(yīng)該也改為被代理的類名稱,比如XXXControllerDelegate。這些都請參考Apple的SDK文檔。
然后就是delegate的使用,首先要在被委托實例里定義一個weak引用屬性
@property(nonatomic,weak)iddelegate;
在被委托的類里面定義方法,調(diào)用delegate里定義的方法:
[self.delegatecontroller:selfdoSomething:para];
這個定義的方法要在委托的類里面調(diào)用,delegate的方法不會被調(diào)用,也就不會有效果。
然后觸發(fā)delegate的方法之前,需要先將上面定義的delegate屬性設(shè)置為實現(xiàn)了協(xié)議的對象引用。
然后再調(diào)用觸發(fā)delegate事件的方法。
題主的問題,可能市沒有設(shè)置delegate屬性,或者沒有調(diào)用到觸發(fā)delegate方法的方法。
                            
查看完整回答
反對 回復(fù) 2019-03-30
?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗 獲得超6個贊

你的para或者delegate的屬性設(shè)置有問題請貼完整代碼
                            
查看完整回答
反對 回復(fù) 2019-03-30
  • 2 回答
  • 0 關(guān)注
  • 396 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號