iOS点击“删除”时弹出消息框问是否确定删除,代码怎么写?
2个回答
2019-02-19
展开全部
参考 网页链接
ios 8 开始不使用UIAlertView 改工UIAlertController
思路是 再UIAlertAction的block里进行删除操作 而不是在tableview的UITableViewRowAction里进行删除(如果在这里进行删除操作会导致,数据删完之后才弹框提示)
最终效果如图:
tableview上点击按钮时的事件
-(NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
//delete
UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"del" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath)
{
[self askalert:indexPath.row tableindex:indexPath]; //在弹出的alertController里面的block里对tableview就行操作
}];
return @[deleteAction];
}
2. alertController的block
- (void) askalert:(NSInteger)delItemindex tableindex:(nonnull NSIndexPath *)indexPath
{
__weak __block XYZToDoListTableViewController *tmp = self;
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Tip" message:@"Are you sure?" preferredStyle:UIAlertControllerStyleAlert];
__block UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
if (cancelAction) {
}
}];
__block UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
if (okAction) {
//列表数组中删除数据
[tmp.toDoItems removeObjectAtIndex:delItemindex];
//刷新tableview
[tmp.tableView beginUpdates];
[tmp.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[tmp.tableView endUpdates];
[tmp savedata:tmp.toDoItems]; //cunchu
}
}];
[alert addAction:cancelAction];
[alert addAction:okAction];
[tmp presentViewController:alert animated:YES completion:nil];
}
展开全部
UIAlertView* alert=[[UIAlertViewalloc]initWithTitle:@"Delete?"message:@"是否删除?" delegate:selfcancelButtonTitle:@"YES"otherButtonTitles:@"NO",nil];
[alert show];
[alert release];
[alert show];
[alert release];
追问
哥们 这个我也会 中看不中用啊
追答
可以用啊,还有点击事件呢
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex) {
case0: //YES应该做的事
break;
case1://NO应该做的事
break;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询