Предупреждение iOS: семантическая проблема (найдено несколько методов с именем setDelegate:) - PullRequest
0 голосов
/ 27 января 2012

Я новичок в iOS 5 и у меня проблема с делегатами и segues.

У меня есть контроллер основного вида, который переходит на SettingsViewController. Основной VC я делаю делегатом VC Settings с этим кодом:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"SETTINGS"]) {
        [[segue destinationViewController] setDelegate:self];
    }
}

Затем SettingViewController переключается на несколько экранов параметров. Я пытался сделать SettingsViewController делегатом для этих экранов опций, но получил предупреждение, что метод setDelegate: был найден в двух местах (MainViewController и SettingsViewController).

Как лучше всего решить эту проблему? Спасибо!

P.S. Я обнаружил, что это предупреждение появляется только тогда, когда я включаю предупреждения о строгом выборе селектора в настройках компилятора (по совету учебника). Оставь это? Решить проблему? Я не совсем уверен ...

1 Ответ

0 голосов
/ 27 января 2012

Достаточно привести контроллер представления к известному типу:

[(SettingsViewController *)[segue destinationViewController] setDelegate:self];
...