keyf
@keyf
Человек из маркетинга с тяжелым ИТ-прошлым

Работа с segue.destrinationViewController в Xcode?

Доброго дня!


Воткнулся в проблему, копаюсь уже второй день.

Есть два view controller (назовем их VC1 и VC2). Они связаны между собой переходом (segue) в Xcode (ctrl-drag с VC1 на VC2, выбор метода — push). Хочу подготовить VC2 к отображению:


VC1.m:
(...)<br/>
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender<br/>
{<br/>
 if ([segue.identifier isEqualToString:@&quot;mySegue&quot;]) <br/>
 {<br/>
 VC2 *vc = segue.destinationViewController;<br/>
 [vc blahblah:self];<br/>
 }<br/>
}<br/>



blahblah — метод VC2 принимающий id в кач-ве параметра. При выполнении кода получаю эксепшн со словами:

«reason: '-[UIViewController blahblah:]: unrecognized selector sent to instance 0x6a73630'»


После долгих танцев с бубном решил заменить код на:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender<br/>
{<br/>
 if ([segue.identifier isEqualToString:@&quot;mySegue&quot;]) <br/>
 {<br/>
 NSLog(@&quot;source VC - %@&quot;, segue.sourceViewController);<br/>
 NSLog(@&quot;target VC - %@&quot;, segue.destinationViewController); <br/>
 }<br/>
}<br/>



при выполнении получаю в логе:
source VC - &lt;VC1: 0x6861ed0&gt;<br/>
target VC - &lt;UIViewController: 0x6878670&gt;<br/>



Т.е. целевой VC не моего типа, поэтому и не вызывается нужный метод.

Во всех примерах которые я вижу в сети, destinationVC устанавливается в тип VC который готовится к показу, поэтому примеров с такой ошибкой найти не смог.


Идеи/предположения/указания на мой косяк? :)


П.С.: пробовал удалять/создавать заново segue в storyboard — результат тот же…
  • Вопрос задан
  • 3647 просмотров
Пригласить эксперта
Ответы на вопрос 2
Flanker_4
@Flanker_4
Ок, погадаю…
Почти уверен, что причина в неверно указанных данных Interface Builder'a
Проверьте, стоит ли класс VC2 в той строчке, что на картинке ниже обозначена номером 3
image
Ответ написан
Комментировать
keyf
@keyf Автор вопроса
Человек из маркетинга с тяжелым ИТ-прошлым
Да, класс стоит верный, VC2.
Сейчас залью проект куда-нить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы