关于objC中的设计模式的新手问题。
  我正在为我的iPhone应用程序编写功能,我也打算在其他应用程序中使用该功能。该功能是通过两个类(Viewcontroller1和Viewcontroller2)编写的。 Viewcontroller1是导航控制器的根视图,它可以推送Viewcontroller2。该应用程序的其余部分将仅使用ViewController1,并且永远不会直接访问Viewcontroller2。但是,触发了
根据用户事件,Viewcontroller2必须向
该应用程序的其余部分。
    我的问题是实现这一目标的最佳方法是什么?

当前,我使用两个级别的委派从Viewcontroller2发送消息。首先将其发送到Viewcontroller1,然后让Viewcontroller1将其发送到应用程序的其余部分或应用程序委托。所以我的代码看起来像-

//Viewcontroller1.h
@protocol bellDelegate
    -(int)bellRang:(int)size;
@end

@interface Viewcontroller1 : UITableViewController <dummydelegate> {
    id <bellDelegate> delegate;
@end

//Viewcontroller1.m
@implementation Viewcontroller1
-(void)viewDidLoad {
  //some stuff here
  Viewcontroller2 *vc2 = [[Viewcontroller2 alloc] init];
  vc2.delegate = self;
  [self.navigationController pushViewController:vc2
                                       animated:YES];
 }

-(int)dummyBell:(int)size {
return([self.delegate bellRang:size]);
}

//Viewcontroller2.h
@protocol dummyDelegate
    -(int)dummyBell:(int)size;
@end

@interface Viewcontroller2 : UITableViewController {
    id <dummyDelegate> delegate;
@end

//Viewcontroller2.m
@implementation Viewcontroller2

-(int)eventFoo:(int)size {
rval = [self.delegate dummyBell:size];
}
@end

最佳答案

那是做事的正确方法!如果要在viewController2上调用所有委托方法,则可能只有一个协议,并且直接将委托从viewController1分配给viewControler2,但这会阻止您第一次需要从viewControler1调用委托。

10-04 09:50