Обмен обратными вызовами между компонентами полезен, когда нужно предложить несколько способов выполнения действий в приложении. Например, может потребоваться, чтобы приложение отвечало одинаково, когда пользователь нажимает кнопку или нажимает клавишу Enter в поле редактирования.
В этом примере показано, как создать приложение, содержащее два компонента пользовательского интерфейса, которые совместно используют обратный вызов. Приложение отображает контурный график с указанным количеством уровней. При изменении значения в поле редактирования можно нажать клавишу Enter или нажать кнопку «Обновить график» для обновления графика.

В App Designer перетащите компонент Axes из библиотеки компонентов на холст. Затем внесите следующие изменения:
Дважды щелкните заголовок и измените его на Select Contours of Peaks Function.
Дважды щелкните метки осей X и Y и нажмите клавишу Delete, чтобы удалить их.
Перетащите компонент «Редактировать поле (числовое)» под осями холста. Затем внесите следующие изменения:
Дважды щелкните метку рядом с полем редактирования и измените ее на Levels:.
Дважды щелкните поле редактирования и измените значение по умолчанию на 20.
Перетащите компонент Button рядом с полем редактирования на холсте. Затем дважды щелкните метку и измените ее на Update Plot.
Добавьте функцию обратного вызова, выполняемую при нажатии кнопки. Нажмите правую кнопку мыши на кнопке «Обновить график» и выберите команду «Обратные вызовы» > «Добавить обратный вызов ButureFcn».
App Designer переключается в представление кода. Вставьте этот код в тело UpdatePlotButtonPushed обратный вызов:
Z = peaks(100); nlevels = app.LevelsEditField.Value; contour(app.UIAxes,Z,nlevels);
Затем выполните обратный вызов совместно с полем редактирования. В обозревателе компонентов щелкните правой кнопкой мыши на значке app.LevelsEditField компонент и выберите Callbacks > Select existing callback.... При появлении диалогового окна «Select Callback Function» (Выбор функции обратного вызова) выберите в раскрывающемся меню «Name» (Имя) команду, которая должна быть выбрана в контекстном меню.

Совместное использование этого обратного вызова позволяет пользователю обновить график после изменения значения в поле редактирования и нажатия Enter. Кроме того, пользователь может изменить значение и нажать кнопку «Обновить график».
Затем задайте пропорции осей и пределы. В обозревателе компонентов выберите app.UIAxes компонент. Затем внесите следующие изменения на вкладке Инспектор (Inspector):
Задать значение параметра PlotateBoxRatio как 1,1,1.
Задайте для XLim и YLim значение 0,100.
Нажмите кнопку Выполнить, чтобы сохранить и запустить приложение.
![]()
Чтобы назначить компонент другой обратный вызов, выберите компонент в обозревателе компонентов. Затем перейдите на вкладку Callbacks и выберите другой обратный вызов из раскрывающегося меню. В раскрывающемся списке отображаются только существующие обратные вызовы.

Чтобы отключить обратный вызов, совместно используемый с компонентом, выберите компонент в обозревателе компонентов. Затем перейдите на вкладку Callbacks и выберите в раскрывающемся меню < no callback >. При выборе этой опции обратный вызов отключается только от компонента. Он не удаляет определение функции из кода и не отключает обратный вызов от других компонентов. После разъединения обратного вызова можно создать новый обратный вызов для компонента или оставить компонент без функции обратного вызова.
Чтобы удалить определение функции обратного вызова из кода, перейдите на вкладку «Обратные вызовы» в обозревателе кода и щелкните правой кнопкой мыши нужный обратный вызов. Затем в контекстном меню выберите Удалить.