成人免费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-29 16:16:30

Objective-c block

2011-07-08 13:49:46

Objective-C UUID
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 秋霞电影一区二区三区 | 日本小视频网站 | 97超在线视频 | www.99re| 91免费在线播放 | 国产精品高潮呻吟 | 亚洲精品自在在线观看 | 国产美女在线播放 | 国产一区中文字幕 | 波霸ol一区二区 | 免费在线一区二区 | 欧美成人一区二区 | 欧美日韩一区二区在线观看 | 性欧美精品一区二区三区在线播放 | 亚洲 欧美 日韩在线 | 国产亚洲精品91 | 久久伊| 国产精品一区久久久 | 成人午夜在线观看 | 色999日韩| 亚洲精品一区二区三区中文字幕 | 中文字幕在线一区 | 老司机67194精品线观看 | 久久蜜桃av一区二区天堂 | 97视频人人澡人人爽 | 午夜影视网 | 一区二区在线观看免费视频 | 在线观看成人精品 | 99精品国产一区二区三区 | 一级视频在线免费观看 | 亚洲精品久久久久久下一站 | 台湾佬成人网 | 日韩av一区二区在线观看 | 欧美一a一片一级一片 | 9999在线视频 | 国产精品明星裸体写真集 | 亚洲精品第一 | 色就是色欧美 | 日韩精品免费在线 | 精品久久久一区 | 亚洲一区二区精品视频 |