ios - 单击屏幕后,表格 View 内容才会出现

标签 ios swift uitableview tableview cloudkit

目前正在开发一个快速应用程序,其中包含使用云套件填充的表格 View 。

由于某种原因,当应用程序打开时,表格 View 显示为空白,但是一旦触摸屏幕,我的条目列表就会突然出现。

我在下面提供了整个 Tableview 大师类,我的想法是这与 viewDidLoad() 有关。函数,但无论我如何尝试,我似乎都无法弄清楚。

import UIKit
import CloudKit
import MobileCoreServices

class MasterViewController: UITableViewController {

    //// DB setup (outside DidLoad)
    let container = CKContainer.defaultContainer()
    var Database: CKDatabase?
    var currentRecord: CKRecord?

    var detailViewController: DetailViewController? = nil

    ///Array to save dbrecords
    var objects = [CKRecord]()

    /// Initialise object of ClipManager class
    let MyClipManager = ClipManager()






    override func viewDidLoad() {
        super.viewDidLoad()
        // Database loading on runtime
        Database = container.privateCloudDatabase

        ///Build Query
        let query = CKQuery(recordType: "CloudNote", predicate: NSPredicate(format: "TRUEPREDICATE"))

        ///Perform query on DB
        Database!.performQuery(query, inZoneWithID: nil) { (records, error) -> Void in
            if (error != nil) {
                NSLog("Error performing query. \(error.debugDescription)")
                return
            }

            self.objects = records!
            self.tableView.reloadData()
        }


        // Do any additional setup after loading the view, typically from a nib.
        self.navigationItem.leftBarButtonItem = self.editButtonItem()

        let addButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "insertNewObject:")
        self.navigationItem.rightBarButtonItem = addButton
        if let split = self.splitViewController {
            let controllers = split.viewControllers
            self.detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? DetailViewController
        }
    }

    override func viewWillAppear(animated: Bool) {
        self.clearsSelectionOnViewWillAppear = self.splitViewController!.collapsed
        super.viewWillAppear(animated)
    }




    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }





    // Tableview stuff --- Done

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
            /////// Get number of rows
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return objects.count
    }
            //// FIll the table
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)

        let object = objects[indexPath.row] 
        cell.textLabel!.text = object.objectForKey("Notes") as? String
        return cell
    }

    override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        // Return false if you do not want the specified item to be editable.
        return true
    }
    //// Deleting the table
    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if editingStyle == .Delete {

            //DB call working
           MyClipManager.DeleteMethod(Database!, MyRecord:objects[indexPath.row])

            objects.removeAtIndex(indexPath.row)
            tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)


        } else if editingStyle == .Insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
        }
    }


}

最佳答案

考虑到重新加载是在完成处理程序中发生的,我假设它是在后台线程上。尝试将 UI 更新分派(dispatch)回主线程。

(此处没有使用 Xcode 来输入示例,因此请检查我的语法。)

示例:

dispatch_async(dispatch_get_main_queue()) {
    self.tableView.reloadData()
}

关于ios - 单击屏幕后,表格 View 内容才会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955841/

相关文章:

swift - Facebook、Snapchat、WhatsApp 联系人使用 AWS Mobile Hub 查找好友功能

ios - Swift - 如何实现默认 View Controller 循环

ios - 为什么表格 View 滚动滞后?

ios - UISearchDisplayController 中的自定义 UITableViewCell

ios - 如何设置 Spotify session 过期日期?

ios - 为什么当我尝试获取边界时 previewLayer 返回 nil?

ios - 点击按钮UICollectionViewCell宽高变化

ios - 如何使用字符串扩展

ios - 如何使用任何月份和周数 swift 3 获取周开始日期和结束日期?

ios - 静态表不显示