コードを実行してからテーブルのアイテムをクリックすると、詳細ビューに移動するという問題があります。正常に表示されますが、コンソールに次のメッセージが表示されます。
2013-03-27 13:09:30.616 LinkTest[3605:c07] の外観遷移を開始/終了する呼び出しが不均衡です。
これはここで頻繁に報告され、回答に目を通していることを知っていますが、何も機能していないようです。多分私は何か間違った。テーブルビューコントローラーのコードは次のとおりです。
#import "EventListingTableViewController.h"
#import "EventListingDetailViewController.h"
@interface EventListingTableViewController ()
@end
@implementation EventListingTableViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
-(void)fetchEventDetails
{
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://xsysdevelopment.com/ios/read.php"]];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
self.eventsTitles = [[NSMutableArray alloc] init];
self.eventsCity = [[NSMutableArray alloc] init];
for(id object in dict){
[self.eventsTitles addObject:object[@"title"]];
[self.eventsCity addObject:object[@"city"]];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self fetchEventDetails];
// Uncomment the following line to preserve selection between presentations.
//self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return self.eventsTitles.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
int row = [indexPath row];
cell.textLabel.text = self.eventsTitles[row];
cell.detailTextLabel.text = self.eventsCity[row];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
EventListingDetailViewController *detailViewController = [[EventListingDetailViewController alloc] initWithNibName:@"EventListingDetailViewController" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"eventDetailSeague"])
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
EventListingDetailViewController *detailViewController = [segue destinationViewController];
int row = [indexPath row];
detailViewController.eventDetails = @[self.eventsTitles[row], self.eventsCity[row]];
}
}
誰かが私が間違っているところを教えてくれたら、本当に感謝します。私は iOS を初めて使用するので、有益な批判のみが役に立ちます。
よろしく