Как вызвать метод в другом представлении, когда контроллер отклонен - PullRequest
1 голос
/ 23 апреля 2011

В основном проблема, с которой я сталкиваюсь, заключается в том, что я не могу вызвать метод в моем главном контроллере представления (называемый Recorder) из другого представления, называемого Table.

Представление таблицы загружается как контроллер Modalview (presentmodalViewController) из Recorder, когда пользователь нажимает кнопку. Табличное представление позволяет моим пользователям перейти от настройки 1 к настройке 2 и имеет кнопку «Готово» (которая вызывает dismissmodalviewcontroller) и возвращает пользователя в основное представление (Recorder).

Я хочу вызвать метод в Recorder, когда кнопка «Готово» нажата в представлении таблицы. Этот метод называется Changeview и изменяет настройку. В настоящее время я не могу правильно вызвать этот метод.

Текущий код, который у меня есть:

метод changeView

- (void)changeView
{

    [levelsView changeView];

}

Файл интерфейса TableViewController

RecorderViewController*recorderViewController;

@property (nonatomic, retain) RecorderViewController *recorderViewController;

Файл реализации TableViewController

@synthesize recorderViewController;

    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        [recorderViewController changeView];

    }

Метод вызывается при нажатии кнопки Готово

- (IBAction) Switch: (id) sender { 

 [self dismissModalViewControllerAnimated:YES];

}

Текущий код не выдает никаких ошибок, но также не меняет настройки. Я также попытался настроить уведомления без удачи. Любое понимание этого?

1 Ответ

1 голос
/ 23 апреля 2011

Вы устанавливаете значение RecorderViewController, когда инициализируете tableViewController (то есть, вы устанавливаете tableViewController.recorderViewController = self в своем классе Recorder)?Если нет, то ваш вызов [recorderViewController changeView] отправляет сообщение на ноль - что не дает сбоя, но и ничего не делает.

Как часть, передавая вашему TableViewController ссылку на ваш RecorderViewControllerВероятно, это не лучший способ взаимодействия двух контроллеров: вы можете рассмотреть возможность использования NSNotificationCenter или передачи объекта модели и использования Наблюдение значения ключа .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...