我有一个带按钮的单元格。此按钮用于删除单元格,当我触摸按钮时,我会在删除前显示alertView。我想要的是将参数中的单元格传递给下面的方法:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex forCell:(MissionCollectionViewCell *) cell
但是在我的UIAlertView初始化期间我不知道该怎么做?
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Attention" message:@"Etes-vous sûr de vouloir supprimer cette mission ?" delegate:self cancelButtonTitle:@"Supprimer" otherButtonTitles:@"Annuler", nil];
答案 0 :(得分:1)
如果您只想支持iOS8 +,您应该转向使用UIAlertController,它为您提供基于块的处理程序,从而轻松访问变量。如果像我们中的许多人一样,你需要为不能立即升级的人提供服务,我发现here描述的方法是处理UIAlertView的最佳方式。
该链接的示例向UIAlertView添加了一个类别,以允许您使用块而不是委托来处理警报视图完成。使用您的示例,它可以让您提升警报,并在完成时为您提供所需的任何变量:
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"Attention"
message:@"Etes-vous sûr de vouloir supprimer cette mission ?"
delegate:self
cancelButtonTitle:@"Supprimer" otherButtonTitles:@"Annuler", nil];
[alert showWithCompletion:^(UIAlertView *alertView, NSInteger buttonIndex) {
// Since this is a block defined where you called it you can use
// the variables you want directly 8^).
if (buttonIndex == alertView.cancelButtonIndex){
... Code can access cell directly.
}
}];
我现在一直使用这个,因为在你提出警报视图的地方旁边完成代码要简单得多。