 
 import UIKit
 
+/// A `UITableViewController` that conforms to `FeedbackCollector` in order to display an interface that allows the user to see, change, and send feedback.
 public class FeedbackViewController: UITableViewController, FeedbackCollector {
+    
+    /// A delegate that is informed of significant events in feedback collection.
     public weak var feedbackDelegate: FeedbackCollectorDelegate?
     
-    var screenshot: UIImage? {
+    /// The screenshot the feedback describes.
+    public var screenshot: UIImage? {
         didSet {
             guard isViewLoaded() else { return }
             

    
    // MARK: - FeedbackViewController
    
    func updateDataSource() {
        guard let configuration = configuration else { assertionFailure(); return }
        
        dataSource = FeedbackTableViewDataSource(configuration: configuration, userEnabledLogCollection: userEnabledLogCollection)
    }
    
    func updateTableHeaderView() {
        guard let screenshot = screenshot else { return }
        
        let header = ScreenshotHeaderView()

        feedbackDelegate?.feedbackCollector(self, didCollectFeedback: feedback)
    }
    
    private func cancelButtonTapped() {
        // TODO: http://stackoverflow.com/questions/25742944/whats-the-programmatic-opposite-of-showviewcontrollersender
        
        dismissViewControllerAnimated(true, completion: nil)
