Я был разработчиком .NET много лет, но только начал работать с Objective-C / Cocoa.Я работал над книгой Hillegass вместе со Scott Stevens Up and Running.За последние несколько недель многому научился (во многом благодаря этому сайту), и я писал приложение, которое ранее написал в VS.Он использует основные данные и отслеживает мою большую библиотеку ноты.Приложение состоит из главного окна с горизонтальным разделением.Вид сверху имеет три таблицы для выбора критериев, так что я могу сузить то, что показывает в нижнем представлении, такие как тип музыки, десятилетие и жанр (например, баллада, 80-е и рок).
Мне удалось построить основнойview и имейте выборки создают предикат, который связан с предикатом filer контроллера массива в нижнем представлении.Нижний вид - это пользовательский вид с собственным пером.Когда выбор в представлении сверху изменяется, предикат перестраивается, но единственный способ применить его к таблице в нижнем представлении - это перезагрузить представление.Это было бы хорошо, за исключением одной вещи.В нижнем представлении также есть две таблицы с интерфейсом типа «мастер-детализация», показывающие исполнителя слева и песни справа.Поэтому, если у меня выбран художник в нижнем представлении, я хочу, чтобы этот выбор сохранялся при изменении критериев выбора в верхнем представлении.Если я перезагружаю нижний вид, я теряю выбор художника в нижнем виде.
Итак, после этого мини-романа возникает вопросКак отправить сообщение из основного представления, чтобы обновить предикат фильтра и обновить таблицу песен, не теряя фокус.Я знаю, что должен быть способ, но я не могу найти его.У меня есть собственный класс для создания и возврата предиката, и я могу создать экземпляр класса и получить предикат, который, как я сначала подумал, будет достаточным, поскольку предикат фильтра привязан к этому классу, но я предполагаю, что при этом создается новый экземпляр класса ипереплет не видит его.
Любая помощь будет принята с благодарностью.