prepareForSegue不发送正确的参数

时间:2014-03-19 12:55:19

标签: ios afnetworking segue

我的应用程序有一个非常奇怪的问题。我在我的应用程序中使用AFNetworking框架。我正在加载带有图像和onclick动作的一些Feed,打开带有详细描述和大图像的新视图。所以我将IdPhoto发送到描述视图,但是当IdPhoto超过12时,prepareForSegue会在内存中发送地址而不是IdPhoto值。

-(void)didSelectPhoto:(PhotoView*)sender {
    //photo selected - show it full screen
        [self performSegueWithIdentifier:@"ShowPhoto" sender:[NSNumber numberWithInt:sender.tag]];
    }

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([@"ShowPhoto" compare: segue.identifier]==NSOrderedSame) {
        DescrController* streamPhotoScreen = segue.destinationViewController;
        streamPhotoScreen.IdPhoto = sender;
    }
}

PhotoView代码的一部分

-(id)initWithIndex:(int)i andData:(NSDictionary*)data {
    self = [super init];
    if (self !=nil) {
        //initialize
        self.tag = [[data objectForKey:@"IdPhoto"] intValue];

所以我无法理解为什么当值超过12时,它不会将IdPhoto发送到另一个View

2 个答案:

答案 0 :(得分:1)

  1. 您是否将属性streamPhotoScreen.IdPhoto设置为STRONG?并确保这不是IBOutlet。
  2. 如果1.没问题,你可以在prepareForSegue中加一个断点:检查发件人是否真的等待你......

答案 1 :(得分:0)

我认为您需要upcast/downcast(sender)才能适合streamPhotoScreen.IdPhoto