2014-01-25 3 views
0

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

Первое:

[self performSegueWithIdentifier:@"Thanks" sender:self]; 

Тогда:

-(void)prepareForSegue:(UIStoryboardSegue *)segue 
{ 
    ThanksViewController *vc = [segue destinationViewController]; 
    [vc set_event_image_url:[NSString stringWithFormat:@"bla bla bla %@.png", event_id]]; 
    [vc set_event_name:eventTitle];   
} 

В приемнике я инициирование переменных.

@property(nonatomic,copy) NSString* _event_name; 
@property(nonatomic,copy) NSString* _event_image_url; 

И

@synthesize _event_image_url; 
@synthesize _event_name; 

Значения теперь (нуль). Любые идеи, почему это не удается? Сегу также добавляется в раскадровку.

+0

Как вы соединяете сегу? –

+0

Модальный сеанс в раскадровке – Hedam

ответ

1

Я бы удалил символы подчеркивания из ваших имен свойств - это не стандартный способ обозначения вещей в объективе-c, и просто возможно, что это может запутать вещи (по умолчанию какао будет синтезировать переменные экземпляра, начинающиеся с подчеркивания).

@property(nonatomic,copy) NSString* eventName; 
@property(nonatomic,copy) NSString* eventImageUrl; 

Вы также можете удалить ваши заявления синтезируют - Objective-C будет делать ваше синтезирование для вас, так что они не необходимы.

Вы бы затем вызвать [vc setEventTitle:blah];

Однако главный вопрос заключается в том, что вы реализовали prepareForSegue неправильно! Подпись надлежащего метода должна быть:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; 

Добавьте параметр отправителя, и вы должны найти его, чтобы он был вызван.

+0

Я изменил код, но он все еще не работает. Я думаю, что я проследил ошибку, чтобы makeForSegue не запускался. Почему еще загадка. – Hedam

+0

Ах, у вас есть подпись подписи неправильно! Ему нужен параметр 'sender'. Я обновил свой ответ. –

+0

Вот оно! Большое спасибо, Джеймс. – Hedam

Смежные вопросы