2012-09-04 44 views
1

iam不是很好的編碼,我有一個嚴重的問題在我的代碼中,我想顯示我的json數據從一個talbe到另一個,例如:在第一個tableview中,我想顯示學生「名稱,點擊名稱後,它將跳轉到下一個tableview並顯示該學生選擇的課程(一個學生可能有多個課程),那麼我該怎麼做呢?以下是mycode實現代碼如下JSON數據UITableView到UITableView

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

// 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; 
self.navigationItem.Title = @"選擇類別"; 
// classify = [[NSArray alloc] initWithObjects: @"時尚類",@"飲食類",@"娛樂類",@"文創類", nil]; 
// NSString *path = [[NSBundle mainBundle] pathForResource:@"DataList" ofType:@"plist"]; 
// classify_ = [[NSMutableArray alloc] initWithContentsOfFile : path]; 
NSURL *url = [NSURL URLWithString:@"http://localhost/store.php"]; 
NSData *jsonData=[NSData dataWithContentsOfURL:url]; 
NSError *error = nil; 

classify_ = [NSJSONSerialization JSONObjectWithData:jsonData options: 
     NSJSONReadingMutableContainers error:&error]; 

} 


- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

//table cell count 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
// Return the number of rows in the section. 
return [self.classify count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

cell.textLabel.text = [[self.classify objectAtIndex:indexPath.row] objectForKey:@"classify"]; 

return cell; 


} 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
// Make sure your segue name in storyboard is the same as this line 
if ([[segue identifier] isEqualToString:@"Second"]) 
{ 
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
    //NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    [[segue destinationViewController] setSecondClassify:[self.classify objectAtIndex:indexPath.row]]; 
} 
} 
+0

你是來自臺灣或香港? –

+0

順便提一下,您的問題與JSON無關。一旦你的數據在'classify'數組中,它可能來自任何地方。 –

回答

1

tableView1.m:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath 
{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES];  
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 

     NSIndexPath *indexPath = [myTable indexPathForSelectedRow]; 
     NSDictionary *item = [displayItems objectAtIndex:[indexPath row]]; 

     [[segue destinationViewController] setDetailItem:item]; 
    } 
} 

tableView2.h:

@property (strong, nonatomic) id detailItem; 

tableView2.m:

- (void)setDetailItem:(id)newDetailItem 
{ 
    if (_detailItem != newDetailItem) { 
     _detailItem = newDetailItem; 

     // Update the view. 
     [self configureView]; 
    } 
} 

- (void)configureView 
{ 
    if (self.detailItem) { 
     itemID = self.detailItem; 
     [self getCourse]; 
    } 
} 

- (void)getCourse{ 

     NSString *code = [NSString stringWithFormat:@"user=%@", itemID]; 
     NSData *postData = [code dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
     NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
     NSURL *url = [NSURL URLWithString:@"http://localhost/getUser.php"]; 

     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
     [request setHTTPBody:postData]; 

     NSURLResponse *response; 
     NSError *error; 
     NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

     allCourseArray = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

     NSDictionary *item = [allCourseArray objectAtIndex:0]; 

     NSString *courseName = [item objectForKey:@"courseName"]; 
     NSString *courseCode = [item objectForKey:@"courseCode"]; 
} 
+0

我來自香港 –

+0

我仍然不知道如何獲得第二個tableview的數據,我如何從第一個tableview索引檢索數據並在第二個tableview cell.text上顯示課程數據? –

+0

我來自臺灣 –