我有一个自定义单元格,其中包含具有以下组件的故事板:
1 UIImage 2 UILabels 4个UI按钮
一个按钮允许用户将优惠券保存为收藏夹,我想在用户保存优惠券后设置此按钮禁用,我试图在自定义单元类中为按钮添加IBOutlet但是它不起作用我不要收到任何错误。我怎样才能做到这一点?有人可以帮帮我吗?
守则:
CouponsCell.h
@property (nonatomic, strong) IBOutlet UIButton *saveFav;
CouponsCell.m
#import "CouponsCell.h"
@implementation CouponsCell
@synthesize saveFav;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
我已经在IBOutlet和按钮之间建立了连接,当用户触摸按钮时我尝试了这个:
- (IBAction)AddFavorite:(id)sender {
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Coupons * couponsObjects = [self.fetchedResultsController objectAtIndexPath:indexPath];
CouponsCell *couponsCell = [self.tableView dequeueReusableCellWithIdentifier:@"CouponCell" forIndexPath:indexPath];
idCoupon = cuponesObjects.idCoupons;
Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
if ( status == NotReachable )
{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"CC Galerias"
message:@"Can’t save the Coupon to favorite, Check your Internet connection."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
}
else if ( status == ReachableViaWiFi )
{
[self postCouponFav:idCoupon]; // Save the Coupon to Favorites
[couponsCell.saveFav setEnabled:NO]; // Set diseable the button
}
else if ( status == ReachableViaWWAN )
{
[self postCouponFav:idCoupon];
[couponsCell.saveFav setEnabled:NO];
}
}
请帮助我,也许解决方案很简单,但我学习iOS开发。在此先感谢您的帮助。
答案 0 :(得分:0)
您不能使用dequeue,因为返回单元格是单元格的新实例,而不是显示的单元格。
您可以通过两种方式更改按钮状态。
在您的自定义单元类中传输您的(IBACTION)方法,而不是在控制器类中传输并释放旧代码。如果需要在CustomCell和controller之间更新数据,请创建并调用委托。
第二种方法是在为井状态设置必要值后重新加载UITableView的Cell