Communication between layers is a very interesting topic and guarantees not only a list of methods.
Here is a very important article from objc.io , which not only contains an exhaustive list of communication methods, but also analyzes their strengths and weaknesses and offers a flowchart to help you decide which method is best.

In your case, the model is the sender, and the controller is the receiver. Typically, the controller holds the model, so the controller knows the Model, but the Model does not know the Controller. Thus, you will be taken to the bottom of the chart.
Please read the full article. It also has examples taken from Apple. This is really helpful.
source share