簡體   English   中英

TableView Segue到新的ViewController不能工作兩次

[英]TableView Segue to new ViewController does not work twice

我有一個TableViewController,在其中選擇一行進行網絡調用,顯示一個activityIndi​​cator,然后在網絡調用的完成塊中,停止指示器並進行推送。

在測試中,我發現當轉到新的視圖控制器,返回並選擇另一行時,它顯示了活動指示器,但從未停止或調用推送命令。 didSelect的代碼:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.tableView.userInteractionEnabled = false
    self.searchController?.active = false
    self.idx = indexPath
    let cell = tableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell
    cell.accessoryView = self.activityIndicator
    self.activityIndicator.startAnimating()

    self.networkingEngine?.getObjectById("\(objectId)", completion: { (object) -> Void in
        if object != nil {
            self.tableView.userInteractionEnabled = true
            self.chosenObject = object
            self.activityIndicator.stopAnimating()
            self.tableView.reloadRowsAtIndexPaths([self.idx], withRowAnimation: .None)
            self.tableView.deselectRowAtIndexPath(self.idx, animated: true)
            self.performSegueWithIdentifier("segueToNewVC", sender: self)
        }
        else {

        }
    })
}

和我使用Alamofire的網絡通話

func getObjectbyId(objectId: String, completion:(Object?) -> Void) {
    Alamofire.request(Router.getObjectById(objectId: objectId))
        .response { (request, response, data, error) -> Void in
            if response?.statusCode != 200 {
                completion(nil)
            }
            else if let parsedObject = try!NSJSONSerialization.JSONObjectWithData(data as! NSData, options: .MutableLeaves) as? NSDictionary {
                let object = parsedObject["thing"]
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    completion(object)
                })
            }
    }
}

所以我創建了斷點,它實際上是第二次進入完成塊並調用它來停止指示器,重新加載該行,取消選擇該行,重新啟用tableView userInteraction並執行segue。 它也調用了我的prepareForSegue,但是一旦完成,它就坐在指示器仍在旋轉的狀態下,直到模擬器崩潰之前,RAM的使用量已經飆升至近2GB。

我相信這與多線程有關,但是由於我將重要的東西放在主線程上,因此我無法縮小確切的范圍。

該問題與將單元的annexView設置為activityIndi​​cator,然后將其刪除並重新裝入所有文件(同時隔離)有關。 我不知道如何將其保留在那里並停止多線程問題,但我選擇了一個進度AlertView。 如果有人有解決方案,我很想知道如何解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM