2014-01-04 3 views
0

Я создаю NSURL в одном представлении контроллера, а затем используя его в другом. URL-адрес содержит правильную строку в контроллере представления, где он создается, но в контроллере представления, к которому я передаю его, это NULL.NSURL не передается между контроллерами представления

NSData *data = feed.imageData; 

NSData *stringData = feed.urlString; 
self.stringForURL = [[NSString alloc] initWithData:stringData encoding:NSUTF8StringEncoding]; 
self.stringForURL = [self.stringForURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
self.finalURL = [NSURL URLWithString:self.stringForURL]; 

А вот где я передать его на другой контроллер вида:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
     NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 

     // Code to create detailed view and set properties 
     DetailViewController *detailViewController = [[DetailViewController alloc] init]; 
     detailViewController.managedObjectContext = self.managedObjectContext; 
     detailViewController.managedObject = object; 
     NSLog(@"Here is the final URL:%@", [self.finalURL absoluteString]); 
     detailViewController.finalURL = self.finalURL; 


     DetailViewController *detailsViewController = [[DetailViewController alloc] init]; 
     [self.navigationController pushViewController:detailsViewController animated:YES]; 

} 

В secondviewcontroller.h:

@property (strong, nonatomic) NSURL *finalURL; 

В secondviewcontroller.m:

AVAsset *asset = [AVURLAsset URLAssetWithURL:self.finalURL options:nil]; 
+0

Как вы объявляете свойство finalURL в своем DetailViewController? – chancyWu

+0

Здесь я обновил свой вопрос @Chancy – matthew

+0

@matthew: Вы уверены, что настраиваете на оригинальный detailviewController? или к новому экземпляру DetailViewController? –

ответ

1

Вы делали это правильно, но вы создали еще один экземпляр detailViewController и толкает его.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 

    // Code to create detailed view and set properties 
    DetailViewController *detailViewController = [[DetailViewController alloc] init]; 
    detailViewController.managedObjectContext = self.managedObjectContext; 
    detailViewController.managedObject = object; 
    NSLog(@"Here is the final URL:%@", [self.finalURL absoluteString]); 
    detailViewController.finalURL = self.finalURL; 


    [self.navigationController pushViewController: detailViewController animated:YES]; 

} 
+0

да, спасибо, Это было прямо передо мной, я просто не смотрел на эти две строки внизу. Спасибо огромное! – matthew

+0

еще один вопрос. Это работает для первого записанного видео, но если я возьму еще одно видео и у вас две ячейки, URL-адрес снова не работает. – matthew

+0

@matthew Следите и проанализируйте свой код шаг за шагом и запишите необходимые значения, чтобы увидеть, что работает как ожидалось. –

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