Search code examples
iospushviewcontrollersdwebimage

Passing data to another file without pushViewController


I am trying to push data from Myfile to SDWebImageDataSource and push SDWebImageRootViewController (View). I have a problem that I cannot pass the data. I have used setImageLink method but I get imageLink value (null) in the NSInteger method why would this happen? Should I use different way?

Myfile.h

@property (nonatomic, retain) NSString *image;

Myfile.m

 - (void)showSDWebImageSample
{
SDWebImageDataSource *imageController = [[SDWebImageDataSource alloc] init];
[imageController setImageLink:image];
[imageController release];

NSLog(@"imagelink are: %@", imageController.imageLink);

SDWebImageRootViewController *newController = [[SDWebImageRootViewController alloc] init];
[[self navigationController] pushViewController:newController animated:YES];
[newController release];
}

SDWebImageDataSource.m

-(void)setImageLink:(NSString *)imageLinkStr
{
  imageLink = imageLinkStr;

//// I can see the value here
NSLog(@"111 %@ 111",imageLinkStr);
NSLog(@"222 %@ 222",imageLink);
}

- (NSInteger)numberOfPhotos {

////imageLink string is (null) Problem here
NSLog(@"222 %@ 222",imageLink);

images_ = [[NSArray alloc] initWithObjects:
             [NSArray arrayWithObjects:@"http://farm3.static.flickr.com/2756/4464013736_524526b2b2_z.jpg", @"http://farm3.static.flickr.com/2756/4464013736_524526b2b2_s.jpg", nil], [NSArray arrayWithObjects:imageLink, imageLink, nil], nil];

NSInteger count = [images_ count];
return count;
}

- (void)imageAtIndex:(NSInteger)index photoView:(KTPhotoView *)photoView {
 NSArray *imageUrls = [images_ objectAtIndex:index];
 NSString *url = [imageUrls objectAtIndex:FULL_SIZE_INDEX];
[photoView setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:@"photoDefault.png"]];
}

Solution

  • perhaps not the best solution, but you can try this way:

      -(void)setImageLink:(NSString *)imageLinkStr {
           imageLink = imageLinkStr;
    
          //// I can see the value here
          NSLog(@"111 %@ 111",imageLinkStr);
          NSLog(@"222 %@ 222",imageLink);
    
        [[NSUserDefaults standardUserDefaults] setObject:imageLink forKey:@"image"]; 
        [[NSUserDefaults standardUserDefaults]synchronize];
      }
    
       - (NSInteger)numberOfPhotos {
    
          NSString *importImage = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
        ////imageLink string is (null) Problem here
       NSLog(@"222 %@ 222",importImage);
    
       images_ = [[NSArray alloc] initWithObjects:
             [NSArray     arrayWithObjects:@"http://farm3.static.flickr.com/2756/4464013736_524526b2b2_z.jpg", @"http://farm3.static.flickr.com/2756/4464013736_524526b2b2_s.jpg", nil], [NSArray arrayWithObjects:importImage, importImage, nil], nil];
    
          NSInteger count = [images_ count];
          return count;
       }