我正在尝试将某些值从视图传递到另一个视图,但值始终为(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;
现在值(null)。任何想法为什么失败? segue也被添加到故事板中。
答案 0 :(得分:1)
我会从你的属性名中删除下划线 - 它不是在objective-c中命名事物的标准方式,它可能是混乱的东西(默认情况下cocoa会合成你以下划线开头的实例变量)
@property(nonatomic,copy) NSString* eventName;
@property(nonatomic,copy) NSString* eventImageUrl;
你也可以删除你的综合语句 - objective-c会为你做综合,所以没有必要。
然后,您可以致电[vc setEventTitle:blah];
但是,主要问题是您错误地实施了prepareForSegue
!正确的方法签名应该是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
添加sender参数,您会发现它将被调用。