成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Objective-C代理方案

移動開發 iOS
本文實現AView中點擊切換到BView,BView中點擊又切換回AView中,并把Bview刪除或隱藏,這樣的一個實例,來看內容。

Objective-C代理方案是本文要介紹的內容。通過一個ViewController控制著AView和BView,這樣的一個實例來介紹內容,我們先來看詳細內容。

現在要實現:AView中點擊切換到BView,BView中點擊又切換回AView中,并把Bview刪除或隱藏。

由于對模式不是很清楚,所以沒想到用什么模式處理,如果有什么好的模式可以解決上述問題,希望大俠們指教哇。

最后使用的方法是objective-c的代理。

1、在BView.h中定義一個代理:

  1. id delegate; // A delegate that wants to act on events in this view 

2、定義代理方法,這里使用到的是objective-c 的協議

  1. @interface NSObject ( BViewDelegate)   
  2. -(void)delegateMethod;  
  3. @end 

注:以上寫的協議為非正式的,所以,不用被設置代理者,不實現這個代理方法也是可以的。

3、在點擊中實現代碼中,調用代理者實現的代理方法。在BView.m中添加如何類似

代碼:

//設置了代理者,且代理者實現了

  1. delegateMethod  
  2. if(delegate && [delegate respondsToSelector:@selector(delegateMethod)])   
  3. delegate delegateMethod];  

4、在AViem.m中設置BView的代理,并實現delegateMethod方法即可:

類似初始化中添加:[aView setDelegate:self];

  1. -(void)delegateMethod{  
  2.       //control bView code here  
  3.       ...  

另外,關于正式協議:

  1. @protocol protocolName  
  2. @optional -(void)delegateMethodA  
  3. @required -(void)delegateMethodB  
  4. // other methods  
  5. ...  
  6. @end 

正式協議類似于java的借口或抽象類。@optional 的方法,可實現也可不實現,但@required 的方法必需實現。默認為@required。

正式協議要求在代理類中聲明采納此代理,如:

  1. @interface ClassName: NSObject <ProtocolName> 
  2. //...  
  3. @end 

另外,在調用特殊代理方法前,需要通過conformsToProtocol函數來判斷代理對

象是否遵守定義的協議,如:

  1. if([mydelegate conformsToProtocol:@protocol(protocolName)])  
  2. {   
  3.       [mydelegate delegateMethod];   

或者使用

  1. respondsToSelector:@selector 

來判斷代理對象是否實現相應的方法。

小結:淺談Objective-c代理方案的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-02 13:16:36

Objective-C 語法 函數

2011-08-04 11:15:46

Objective-C 構造函數 構造方法

2011-08-04 09:35:09

Objective-C 編碼規范

2011-08-03 15:51:48

Objective-C 協議 委托

2011-07-28 18:11:18

Objective-C Cocoa 編程

2011-08-10 18:07:29

Objective-C反射

2013-06-20 10:40:32

Objective-C實現截圖

2013-03-27 12:54:00

iOS開發Objective-C

2011-05-11 15:58:34

Objective-C

2011-05-11 11:20:26

Objective-C

2011-05-11 13:54:08

Objective-C

2011-05-11 15:45:50

內存管理Objective-C

2011-05-11 14:06:49

Objective-C

2011-08-04 14:58:37

Objective-C Cocoa NSString

2013-08-21 14:57:42

objective-c問題

2014-04-30 10:16:04

Objective-CiOS語法

2014-06-25 14:02:59

Objective-CKVO

2012-03-07 13:43:59

Objective-C

2011-07-08 13:49:46

Objective-C UUID

2012-06-15 09:47:48

Objective-CCategory
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品区 | 国产精品69久久久久水密桃 | 超碰日本 | 精品国产乱码久久久久久丨区2区 | 国产精品成人一区二区 | 欧美成人一区二区三区 | 国内91在线 | 欧美性受xxx | 爱综合| 狠狠色香婷婷久久亚洲精品 | 久久精品国产99国产精品 | www九色| 福利片在线看 | 91久久精品 | 精品久久久久久国产 | 久久久亚洲精品视频 | 91在线精品一区二区 | 精品国产视频 | 欧美日韩精品中文字幕 | 欧美成人一区二区 | 麻豆一区二区三区 | www.一级毛片 | 国产 欧美 日韩 一区 | 日韩欧美国产一区二区三区 | 午夜无码国产理论在线 | 免费在线观看成年人视频 | 国产精品久久毛片av大全日韩 | 91精品国产乱码久久久久久久久 | 成人精品福利 | 亚洲精品一区二区在线观看 | 欧美日韩在线一区二区 | 精品一区二区三区免费毛片 | 欧美一区不卡 | 日韩av一区二区在线观看 | 最新av在线播放 | 欧美天堂 | 看片91 | 欧美一区二区二区 | www.888www看片| 亚洲一区二区三区在线 | 99精品电影 |