我在自定义单元格上设置了委托方法。让我们说,
@protocol CheckDelegate <NSObject>
@required
- (void)checkForUpdate;
@end
@property (nonatomic, weak) id<CheckDelegate> delegateForChecker;
- 我会在我的单元格的某处调用上面的函数---
我希望收听Viewcontroller中Custom Cell的任何更改。如何在不使用tableviewcontroller的情况下使用Viewcontroller中的委托来实现它。
在ViewController中我虽然做了,
-(void) viewDidLoad{
CustomCell * cll = [[Customcell alloc]init]
cll.delegateForChecker = self;
}
-(void) checkDelegate{
NSLog(@"Something changed");
}
P.S。我不想使用NSNotification
答案 0 :(得分:0)
我想出了一种不同的方法,使用块将数据从单元格传递到另一个viewcontroller(而不是实例化单元格的tableviewcontroller)。这可能会帮助那些可能发现自己陷入此问题的人。 在自定义单元格中,我创建了一个名为block的属性,该属性将属性传递给tableviewcontroller,其中单元格是即时的。
@property (copy, nonatomic) void (^didTouchButtonOnCell) (BOOL selectedButton);
在customCell中触摸的按钮中,我使用布尔值设置布尔属性。
self.didTouchButtOnCell(YES/NO);
在tableViewcontroller中我创建了另一个块,它将数据传递给我打算传递布尔值的viewcontroller。 在TableViewController中,
@property (copy, nonatomic) void (^passBooleanToViewController) (BOOL selectionFromButton)
在TableViewController的cellForRowAtIndexPath中,我获取boolean属性并将其传递给^ passBooleanToViewController。
cell.didTouchButtonCell = ^(BOOL selection)
{
passBooleanToViewController(selection)
}
最后,在ViewController中,我再次获取TableViewcontroller的Block属性,该属性包含从CustomCell传递给TableViewController的布尔值
Viewcontroller.passBooleanToViewController = ^(Bool sel){
NSLog(@"%I here is the boolean value",sel);
}
**这是我能够解决将值从自定义单元格传递到viewcontroller的问题之一。如果其他一些方法也可以共享,那就太好了。