UITableViewCell doesn't get deselected when swiping back quickly

后端 未结 16 1709
甜味超标
甜味超标 2021-01-29 23:49

I\'ve now updated three of my apps to iOS 7, but in all three, despite them not sharing any code, I have the problem where if the user swipes to go back in the navigation contro

16条回答
  •  梦谈多话
    2021-01-30 00:50

    Rhult's solution works perfectly on iOS 9.2. This is the implementation in Swift:

    Declare a variable in your MasterViewController to save the IndexPath:

    var savedSelectedIndexPath: NSIndexPath?
    

    Then you can put the code in an extension for clarity:

    extension MasterViewController {
        override func viewDidAppear(animated: Bool) {
            super.viewDidAppear(animated)
            self.savedSelectedIndexPath = nil
        }
    
        override func viewWillDisappear(animated: Bool) {
            super.viewWillDisappear(animated)
            if let indexPath = self.savedSelectedIndexPath {
                self.tableView.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: .None)
            }
        }
    
        override func viewWillAppear(animated: Bool) {
            super.viewWillAppear(animated)
            self.savedSelectedIndexPath = tableView.indexPathForSelectedRow
            if let indexPath = self.savedSelectedIndexPath {
                self.tableView.deselectRowAtIndexPath(indexPath, animated: true)
            }
        }
    }
    

提交回复
热议问题