我正在尝试在选择其他UITableView
行的行时重新加载UITableView's
。我遇到的一个问题是UITableView's
都在同一个视图中。我想在Table1中选择一个选项来更改用于填充Table2的NSMutableArray
。然后重新加载表格。
目前它工作正常,但只有当应用程序重新启动时(或视图从堆栈弹出然后重新访问)并再次调用viewWillAppear
这是我的代码:
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:NO];
[self.navigationController setNavigationBarHidden:YES animated:NO];
self.navigationController.toolbarHidden = YES;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
selectedTableString = [prefs stringForKey:@"selectedTableString"];
if ([selectedTableString isEqualToString:@"Italy"]) {
jsonStringCountry = @"http://****/v1/public/cities?country=it";
}
else if ([selectedTableString isEqualToString:@"Spain"]) {
jsonStringCountry = @"http://****/v1/public/cities?country=es";
}
else if ([selectedTableString isEqualToString:@"UK"]) {
jsonStringCountry = @"http://****/v1/public/cities?country=uk";
}
else if ([selectedTableString isEqualToString:@"Brazil"]) {
jsonStringCountry = @"http://****/v1/public/cities?country=br";
}
NSLog(@"from two t selectedTableString %@",selectedTableString);
// Download the yoodeal JSON
NSString *jsonString = [NSString stringWithContentsOfURL:[NSURL URLWithString:jsonStringCountry] encoding:NSStringEncodingConversionAllowLossy|NSUTF8StringEncoding error:nil];
NSLog(@"jsonStringCountry is %@", jsonStringCountry);
NSMutableArray *itemsTMP = [[NSMutableArray alloc] init];
// Create parser for the yoodeal api
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *results = [parser objectWithString:jsonString error:nil];
itemsTMP = [results objectForKey:@"results"];
self.displayItems = [itemsTMP copy];
}
我的UITableView
方法:
- (int)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [displayItems count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];
if(cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
}
// Get item from tableData
NSDictionary *item = (NSDictionary *)[displayItems objectAtIndex:indexPath.row];
cell.textLabel.text = [item objectForKey:@"name"];
[cell.textLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 14.0f]];
return cell;
}
答案 0 :(得分:1)
为表格视图创建出口
[self.yourTableView reloadData];
答案 1 :(得分:1)
使用[tablename reloadData];
onclick。
更新tableview内容时,它不会刷新视图。重新加载视图控制器后,您才能看到更改。 要立即更新表格,您需要调用上面的代码
答案 2 :(得分:1)
您应该创建一个名为secondTableView
的UITableView属性,然后使用[secondTableView reloadData]
。
答案 3 :(得分:1)
您需要使用UITablveView
的委托方法。方法是:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
单击UITableView
行时会调用此方法。请按以下方式使用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == Table1)
{
//do the changes in array you want to do.
[table2 reloadData];
}
else
{
//do the changes in array you want to do.
[table1 reloadData];
}
}