objective-c protocol delegate的理解

@protocol UIViewDelegate

-(void)delegateFunc

-(void)getRowCount;

-(void)ShowRowData:(int) rowIndex;

-------------------------------------------

@interface MyUIView:UIView

{  

id<UIViewDelegate> *delegate;

}

 -(void) OnMessage  //myView响应消息

{

   if(delegatge!=nil)

        [delegate delegateFunc];

}


-(void)displayData   //比如设置一个显示数据的函数

{

    if(delegate!=nil)

    {

        for(int i=0;i<[delegate getRowCount];i++)

    {    

             [delegate showRowData] ;//显示每行的数据

    }

    }


-------------------------------------

定义自己的MyUIViewController

UIViewController基础类包含了UIView,同时实现了Delegate

@interface MyUIViewController:UIViewController〈UIViewDelegate〉

当然首先要实现UIViewDelegate的成员函数,在MyUIViewController的构造函数中

-(id)init

{

   MyUIView *myView=[[MyUIView alloc]init];

   myView.delegate=self;

   self.View=myView;

}


-(void)delegateFunc      //一般我们在这里重新写入自己的代码

{

}


-(int)getRowCount

{

   return 10;

}

-(void)showRowData:(int)rowIndex

{

   //在这里可以从模型中取出数据,根据索引号显示出来

}



MyUIViewController一直保存着视图的指针,



你可能感兴趣的:(objective-c protocol delegate的理解)