Вы можете предоставить протокол делегата, специфичный для вашей модели, который используется обоими контроллерами.Этот протокол может иметь такие методы, как itemContentDidChange:withIndex:
и т. Д., Предоставляя слушателям информацию о том, что изменилось в модели.Если вы зарегистрируете оба контроллера в качестве делегатов для вашей общей модели, в которой оба реализуют этот общий протокол, зависимость между контроллерами будет удалена без каких-либо новых зависимостей.
Однако это только мое мнение, которое довольно субъективно,Твой подход также совершенно хорош - я думаю, что для мастера вполне нормально быть делегатом детали в то же время, когда деталь является делегатом мастера.Это лучше, чем указывать каждому контроллеру указатель на другой, потому что вам не нужно думать о сохранении циклов.