0

我有一个SubSelectVC处理从SearchVC. 有SubSelectVC一个-(void)didSelectRowAtIndexPath执行这些选项的,大致:

if ([[[UIDevice currentDevice] systemVersion] intValue] < 5) {
    ((SearchVC *)self.parentViewController.filters.filterValue = @"Some value";
}
else {
    ((SearchVC *)self.presentingViewController.filters.filterValue = @"Some value";
}

这似乎是糟糕设计的尖叫,但我的意思是,这样做的选择是存在的,而且非常简单!这有什么问题,我该如何解决?(我应该使用委托吗?)

4

1 回答 1

2

是的,我认为更好的封装版本是在 SubSelectVC 的头文件中定义一个委托协议,并在 SubSelectVC 上定义一个委托属性。

这样,您的视图控制器可重用于任何需要从列表中选择模式的任务。

编辑:添加示例标题:

子选择VC.h:

@protocol SubSelectVCDelegate

- (void)itemSelected:(NSString *)itemName;

@end

@interface SubSelectVC : UIViewController

@property (assign) id <SubSelectVCDelegate> delegate;

// etc...

@end
于 2012-01-13T20:09:45.687 回答