Question: I have some code that looks like this

```
<div class="passage-container">
    <p>Paragraph 1...</p>
    <p>Paragraph 2...</p>
    <p>Paragraph 3...</p>
    <p>Paragraph 4...</p>
    <p>Paragraph 5...</p>
    <p>Paragraph 6...</p>
</div>

```

If all of the paragraph text was the same length, I could column break it after Paragraph 3 and have Paragraph 4 start the new column. But the kicker is some paragraphs that will be longer/shorter than others, so it's possible, for example, I'd want Paragraphs 1 and 2 to be in the first column, then Paragraphs 3-6 in the second.

Is there a way using CSS only to achieve this feature where flexbox will adjust which paragraphs are shown in one column vs. another based on how much content is within the paragraph, so the columns will be balanced?

Thanks

Answer: 
This is not a place for a delegate to be used like you did in `prepare` method, once you get `let destination = segue.destination as! ContactDetailViewVC` you know it is of type `ContactDetailViewVC` and compiler knows that `ContactDetailViewVC` conforms to `SendName` protocol so you can just invoke send method on the `destination` with `destination.send(name: selectedContact)`

Your method would thus change to: 

```
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destination = segue.destination as? ContactDetailViewVC {
        let selectedContact = contacts[(tableView.indexPathForSelectedRow!.row)]
        destination.send(name: selectedContact)
    }
}

```
You have to set the value of `var delegate: SendName?` in ContactsTVC itself. Delegates should be weak to avoid retain cycle, `weak var delegate: SendName?`.