         return
       }
     case .Date:
-      break
+      let dateIndexPath = NSIndexPath(forRow: 1, inSection: indexPath.section)
+      if showDatePickerSections.contains(indexPath.section) {
+        showDatePickerSections.remove(indexPath.section)
+        tableView.deleteRowsAtIndexPaths([dateIndexPath], withRowAnimation: .Fade)
+      } else {
+        showDatePickerSections.insert(indexPath.section)
+        tableView.insertRowsAtIndexPaths([dateIndexPath], withRowAnimation: .Fade)
+      }
     case .Any, .Array, .Data, .LinkingObjects:
       break
     }

      }
      return cell
    case 1:
      if property.type == .Date {
        return createDateCell(indexPath, property: property)
      }
      return createIsNilCell(indexPath, property: property)

  }
  
  override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1 + (properties[section].optional ? 1 : 0) + (showDatePickerSections.contains(section) ? 1 : 0)
  }
  
  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
