在视图之间传递值给出(null)

时间:2014-01-25 18:42:01

标签: ios objective-c uistoryboard segue

我正在尝试将某些值从视图传递到另一个视图,但值始终为(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也被添加到故事板中。

1 个答案:

答案 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参数,您会发现它将被调用。