【问题标题】:Swift: The tableView do not reload data after press button in alert viewSwift:在警报视图中按下按钮后,tableView 不会重新加载数据
【发布时间】:2025-11-21 18:40:01
【问题描述】:

我添加了警报视图,让用户可以控制他们可以删除数据库中的所有项目,但表不会再次重新加载数据。

我试过self.tableView.delegate = selfself.tableView.reloadData(),但还是不行。

代码如下:

class ItineraryViewontroller: UITableViewController {
....

         func clearAll(){

           var clearAlert = UIAlertView()
            clearAlert.delegate = self
            clearAlert.title = "Clear All"
            clearAlert.message = "Do you want to delete ALL events in itinerary?"
            clearAlert.addButtonWithTitle("OK")
            clearAlert.addButtonWithTitle("Cancel")
            clearAlert.show()

        }



        func alertView(View: UIAlertView!, clickedButtonAtIndex buttonIndex: Int){
            switch buttonIndex{

            case 0:
                NSLog("OK");

                 self.db.open()
                 self.db.executeUpdate("DELETE FROM bookmark",withArgumentsInArray: nil)

                 //self.tableView.delegate = self
                 //self.tableView.reloadData()
                 let selfClass =  ItineraryViewontroller()
                 selfClass.tableView.reloadData()


                break;
            case 1:
                NSLog("Cancel");
                break;
            default:
                NSLog("Default");
                break;
                //Some code here..

            }
        }
...
}

【问题讨论】:

  • 您是否也设置了self.tableView.datasource = self?还要在 viewDidLoad 中设置 self.tableView.datasource = self and self.tableView.delegate = self
  • 是的,它仍然不适合我

标签: ios uitableview swift ios7 uialertview


【解决方案1】:
    let selfClass =  ItineraryViewontroller()
     selfClass.tableView.reloadData()

这些行不正确。您创建了一个ItineraryViewontroller 的新实例

您应该获得用于显示您的 tableview 的 ItineraryViewontroller 的引用。

同时,您必须更新您的dataSourcetableview

【讨论】:

  • 所以,我添加了self.tableView.reloadData(),对吗? let selfClass = tineraryViewontroller() 的目的是要再次调用自己。
  • 从你发的代码中,我无法判断self是不是ItineraryViewontroller,如果是,你可以试试。
  • 抱歉信息缺失。我已经厌倦了添加self.tableView.reloadData(),但它不起作用。
  • 你忘了更新你的dataSource,在清空DB数据的时候,你还需要清空你的tableview dataSource的数据。
  • 不客气。我会更新答案,让遇到这个问题的其他人知道会发生什么
最近更新 更多