我已经被教导要始终使用UITableViewCell
的委托,但我已经有一个名为MyDefaults
的帮助程序类来处理获取和设置某些首选项NSUserDefaults
。
这就是我目前正在做的事情:
在我的DummyPreferenceCell.h
:
@protocol DummyPreferenceCellDelegate <NSObject>
-(void)setDefaultDummyPreferenceTo:(NSString *)dummyPreferenceOption;
@end
在我的DummyPreferenceCell.m
:
- (IBAction)dummyPreferenceOptionSelected:(UISegmentedControl *)sender {
NSString *dummyPreferenceOption = @"";
switch (sender.selectedSegmentIndex) {
// first dummy preference option selected
case 0:
dummyPreferenceOption = @"dummyOption1";
break;
// second dummy preference option selected
case 1:
dummyPreferenceOption = @"dummyOption2";
break;
default:
NSLog(@"ERROR");
return;
break;
}
[self.delegate setDefaultDummyPreferenceTo:dummyPreferenceOption];
}
在我的父母ViewController.m
中:
#pragma mark - DummyPreferenceCellDelegate
-(void)setDefaultDummyPreferenceTo:(NSString *)dummyPreferenceOption {
[MyDefaults setDummyPreferenceTo:dummyPreferenceOption];
}
当我已经有一个帮助班为我做这个动作时,是否需要授权,或者如果我不使用授权,它是否会导致未来的问题?
答案 0 :(得分:3)
遵循MVC模式。
DummyPreferenceCell
扩展UITableViewCell
,这只是模态视图控制器范例的一部分在MVC中,View没有分配管理数据的责任。 这就是模型的作用。所以传回来是非常正确的 选择控制器,然后将其传递给模型 你可以在那里做所有的验证
答案 1 :(得分:1)
如果你需要ViewController中的事件,当UISegmentedControl值改变时,你需要编写委托,否则你可以将它存储在你的帮助器类中。每当你写代表时,它应该是。
- (IBAction)dummyPreferenceOptionSelected:(UISegmentedControl *)sender {
NSString *dummyPreferenceOption = @"";
switch (sender.selectedSegmentIndex) {
// first dummy preference option selected
case 0:
dummyPreferenceOption = @"dummyOption1";
break;
// second dummy preference option selected
case 1:
dummyPreferenceOption = @"dummyOption2";
break;
default:
NSLog(@"ERROR");
return;
break;
}
if([self.delegate respondsToSelector:@selector(setDefaultDummyPreferenceTo:) ])
[self.delegate setDefaultDummyPreferenceTo:dummyPreferenceOption];
}
希望这会有所帮助