我可以在Fanc@R_502_4163@l中RACObserve属性,因为它具有那些单元格视图模型的NSArray,但是如何监视实际 *** 作并通知在单元格上触发的确切 *** 作?
我想到的第一件事就是授权或通知,但由于我们的项目中有RAC,所以不使用RAC是完全愚蠢的,对吧?
[编辑]到目前为止我做了什么……
因此,事实证明,你可以使用RACCommand来实际处理特定按钮上的UI事件.在那种情况下,我添加了:
@property (strong,nonatomic) RACCommand *showAction;
我的BaseCell@R_502_4163@l具有简单的实现,如:
- (RACCommand *)showAction { return [[RACCommand alloc] initWithSignalBlock:^RACSignal *(ID input) { NSLog(@"TEST"); return [[RACSignal empty] logall]; }];}
按照这种模式,我必须在我的BaseCell中做一些事情,结果很简单,最后我添加了:
- (voID)configureWith@R_502_4163@l:(JDLBasePostCell@R_502_4163@l *)@R_502_4163@l { self.@R_502_4163@l = @R_502_4163@l; self.actionbutton.rac_command = self.@R_502_4163@l.showAction;}
并且…它的工作原理!但…
我需要在发生这种情况时提供UIActionSheet,这只有在我需要当前的parentVIEwController时才会显示,因为我没有将这种信息传递到任何地方,我现在不知道该怎么做.
Fancy@R_502_4163@l拥有一个私有的@property(非原子的,强大的)NSMutableArray< BaseCell@R_502_4163@l *> * cell@R_502_4163@ls;,但是如何在FancyVIEwController上注册一些东西来实际监听BaseCell@R_502_4163@l上RACCommand的执行?
// BaseCell.h@protocol BaseCellDelegate;@interface BaseCell : UItableVIEwCell@property(nonatomic,weak) ID<BaseCellDelegate> delegate;// ...@end@protocol BaseCellDelegate <NSObject>- (voID)baseCell:(BaseCell *)cell dIDReceiveAction:(Nsstring *)actionname;@end
按下按钮后,找出你想告诉代表的内容,然后告诉它:
// BaseCell.m- (IBAction)buttonWaspressed:(ID)sender { self.delegate baseCell:self dIDReceiveAction:@"someAction";}
然后,在视图控制器中,声明您符合协议:
// FancyVIEwController.m@interface FancyVIEwController () <BaseCellDelegate>
在cellForRowAtIndexPath中,设置单元格的委托:
// dequeue,etccell.delegate = self;
您现在需要在vc中实现此功能:
- (voID)baseCell:(BaseCell *)cell dIDReceiveAction:(Nsstring *)actionname { // the cell got an action,but at what index path? NSIndexPath *indexPath = [self.tableVIEw indexPathForCell:cell]; // Now we can look up our model at self.model[indexPath.row]}总结
以上是内存溢出为你收集整理的ios – 处理来自MVVM中UITableViewCell的 *** 作全部内容,希望文章能够帮你解决ios – 处理来自MVVM中UITableViewCell的 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)