Segue不会传递数据
我想在另一个视图控制器中设置一个名为BillTrackerViewController的数组,名为billtrackertablevalues,位于主类MainViewController中的NSMutableArray的值。 我打算使用BillTrackerViewController中的数组作为UITableView的数据。 但是,当我尝试设置该数组的值,table_items和segue时,该表不显示任何内容。 但是,billtrackertablevalues的值是正确填充的,不为空。
这是我的MainViewController的代码:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([segue.identifier isEqualToString:@"toBillTracker"]) { PFQuery *query = [PFQuery queryWithClassName:@"Resolution"]; [query whereKey:@"event" equalTo:event_name_label.text]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { for (PFObject *object in objects) { [billtrackertablevalues addObject:[NSString stringWithFormat:@"%@\nPro: %@\nCon: %@\nResult: %@",[object objectForKey:@"resolution_name"], [object objectForKey:@"resolution_pro_speaker"], [object objectForKey:@"resolution_con_speaker"], [object objectForKey:@"resolution_result_id"]]]; } NSLog(@"%@", billtrackertablevalues); BillTrackerViewController *controller=(BillTrackerViewController *)segue.destinationViewController; controller.table_items = [[NSMutableArray alloc] init]; controller.table_items = billtrackertablevalues; } else { NSLog(@"Error: %@ %@", error, [error userInfo]); } }]; } }
这里是我的BillTrackerViewController的代码:
#import "BillTrackerViewController.h" #import "Parse/Parse.h" @interface BillTrackerViewController () @end @implementation BillTrackerViewController @synthesize billView; @synthesize refreshButton; @synthesize table_items; - (void)viewDidLoad { [super viewDidLoad]; [billView reloadData]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { } return self; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [table_items count]; } - (UITableViewCell *)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"]; } NSString *cellText = table_items[indexPath.row]; cell.textLabel.text = cellText; return cell; } @end
BillTrackerViewController上的表再次没有加载值,但是我的初始数组billtrackertablevalues被填充。
在此先感谢,伙计们!
更改以下代码: –
controller.table_items = [[NSMutableArray alloc] init]; controller.table_items = billtrackertablevalues;
如下所示: –
controller.table_items = [[NSMutableArray alloc] initWithArray:billtrackertablevalues];
之后,在viewTraderViewController中做NSLog
viewDidLoad方法,让我知道。 希望它能工作。