почему я не могу установить делегата нового экземпляра как себя? - PullRequest
1 голос
/ 14 мая 2010

У меня есть uipickerview, который появляется вместе с ActionSheet. Все это в классе «MultiPicker». Я создаю новый экземпляр из «FirstViewController» следующим образом:

multiPicker *multiPic = [[multiPicker alloc]init];
multiPic.delegate = self;

[multiPic action:aRunIndex];

И внутри «multiPicker», в «action»:

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:title          delegate:otroDelegate cancelButtonTitle:nil destructiveButtonTitle:@"Cancel" otherButtonTitles:@"Done", nil];

 UIPickerView *pickerView = [[[UIPickerView alloc] init] autorelease];
 pickerView.tag = 101;
 pickerView.delegate = self;
 pickerView.dataSource = self;
 pickerView.showsSelectionIndicator = YES;

 [actionSheet addSubview:pickerView];
 [actionSheet showInView:self.view];

Мне нужно «FirstViewController» после завершения MultiPicker, чтобы я мог обновить таблицу в FirstView. Я попытался установить новый делегат для MultiPicker, поэтому он сообщает FirstView, когда он заканчивается. Но инструкция «multipic.delegate = self» в первом фрагменте кода приводит к сбою приложения и говорит «Завершение работы из-за необработанного исключения».

Если я просто помещу весь код "MultiPicker" в класс FirstViewController, а не в отдельный, лист действий останется заблокированным, когда я попытаюсь нажать кнопку, отличную от "Отмена"

Есть идеи?

Спасибо,

1 Ответ

0 голосов
/ 14 мая 2010
  1. убедитесь, что ваш класс 'self' реализует требуемый протокол
  2. протоколы имеют необязательные и обязательные методы, вы должны реализовать все необходимые методы делегата 'protocol' в вашем классе 'self'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...