我在NSMutableArray中有一个交易列表。我想在兑换课程中删除其中一项交易。我该怎么办?我在UITableViewController中使用tableviewcells来使用count方法显示我的交易。
如何使用兑换按钮的IBAction从交易数组中删除交易?
需要很多帮助,这非常重要,谢谢。
SELECT *
FROM (
SELECT t1.id, t1.name, t2.category, t2.subcategory
FROM t1
INNER JOIN t2 ON t1.id=t2.id
) AS result
LEFT JOIN t3 ON result.id=t3.id
答案 0 :(得分:0)
您不需要arrayWithObjects
方法。只需:self.dealListArray = @[dealOne, dealTwo, dealThree];
此按钮位于您的单元格内?最常用的方法是使用委托模式:Adding a delegate to a custom UITableViewCell (bad access error)
答案 1 :(得分:0)
要在不同的ViewController之间进行通信,您需要使用NSNotificationCenter
。
在您的AppDealsTVC
中,如果要删除某笔交易,则可以致电[NSNotificationCenter postNotificationName:@"RedeemDeal" object:self userInfo:deal]
,并使用viewDidLoad
RedeemVC
[NSNotificationCenter addObserver:self selector:@selector(methodNameToRemoveDeal:) notificationName:@"RedeemDeal" notificationSender:nil]
方法通过methodNameToRemoveDeal:
订阅此通知1}}
这会将交易作为参数发送到方法redeemButton:sender
,您可以在其中删除它。您需要实现不同的删除方法,而不是直接调用methodNameToRemoveDeal:
方法,但您可以通过redeemButton:sender
中的RedeemDealVC
调用[NSNotificationCenter removeObserver:self name:@"RedeemDeal" object:nil]
来重复使用相同的兑换代码
您还需要确保在[dealloc]
的{{1}}方法中调用RedeemVC
,以便在从堆栈中取消分配RedeemVC
时取消订阅该事件以防止内存泄漏。
我还建议在应用程序的某处将@"RedeemDeal"
通知名称定义为常量,以避免在应用程序中对许多不同位置的名称进行硬编码。如果需要,可以在以后的单个位置更容易更改。
虽然我正在制作设计建议......但在模型中定义Deal
类可能不是一个好主意,而是依赖于交易的字典表示。通过这种方式,您可以更清楚地将交易的不同部分定义为属性,并且可以包含- (void) redeem
等方法来处理您的交易的兑换。