Мне нужно просмотреть контроллеры (UpcomingReleaseViewController и ReleaseController).prepareForSegue выводит меня на пустую страницу
Я использую JSON для заполнения моего приложения.
Основная страница моего приложения - это UpcomingReleasesViewController, как только вы нажмете на ячейку, на которой предполагается перейти на страницу Release, и покажите вам больше информации, но по какой-либо причине каждый раз, когда вы нажимаете на ячейку, вы попадаете в пустая страница.
ReleaseView.h
@interface ReleaseViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextView *releaseView;
@property (strong, nonatomic) NSString *release_name;
@end
ReleaseView.m
@interface ReleaseViewController()
@end
@implementation ReleaseViewController
@synthesize releaseView = _releaseView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.releaseView.text = self.release_name;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
UpcomingReleaseViewController.m
#import "UpcomingReleasesViewController.h"
#import "UpcomingRelease.h"
#import "ReleaseViewController.h"
@interface UpcomingReleasesViewController()
@end
@implementation UpcomingReleasesViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *upcomingReleasesURL = [NSURL URLWithString:@"http://obscure-lake-7450.herokuapp.com/upcoming.json"];
NSData *jsonData = [NSData dataWithContentsOfURL:upcomingReleasesURL];
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
self.upcomingReleases = [NSMutableArray array];
NSArray *upcomingReleasesArray = [dataDictionary objectForKey:@"upcoming_releases"];
for (NSDictionary *upcomingReleaseDictionary in upcomingReleasesArray) {
UpcomingRelease *upcomingRelease = [UpcomingRelease upcomingReleaseWithReleaseName:[upcomingReleaseDictionary objectForKey:@"release_name"]];
upcomingRelease.release_price = [upcomingReleaseDictionary objectForKey:@"release_price"];
upcomingRelease.release_date = [upcomingReleaseDictionary objectForKey:@"release_date"];
upcomingRelease.thumbnail = [upcomingReleaseDictionary objectForKey:@"thumbnail"];
upcomingRelease.url = [NSURL URLWithString:[upcomingReleaseDictionary objectForKey:@"url"]];
[self.upcomingReleases addObject:upcomingRelease];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UpcomingRelease *upcomingRelease = [self.upcomingReleases objectAtIndex:indexPath.row];
NSData *imageData = [NSData dataWithContentsOfURL:upcomingRelease.thumbnailURL];
UIImage *image = [UIImage imageWithData:imageData];
cell.imageView.image = image;
cell.textLabel.text = upcomingRelease.release_name;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ — $%@",[upcomingRelease formattedDate], upcomingRelease.release_price];
return cell;
}
#pragma mark - View Upcoming Release
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showRelease"]) {
ReleaseViewController *rvc = (ReleaseViewController *)[segue destinationViewController];
rvc.release_name = [self.upcomingReleasesArray objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
}
}
@end
The Storyboard Segue назван правильно (showRelease), и я связал UITextView с моим ReleaseViewController (releaseView). Возможно, что-то связано с предстоящим ReleasesArray? Я новичок в iOS, я не знаю, в чем проблема.
Где вы называете segue? В 'didSelectRowAtIndexPath'? – CaptJak
Журнал [self.upcomingReleasesArray objectAtIndex: [[self.tableView indexPathForSelectedRow] row] в файле prepareForSegue, чтобы узнать, нет ли там ничего. – rdelmar