1

我想A视图控制器切换另一个B视图控制器,第一次,我推(按下GuestBook按钮)和TableView获取信息ok,然后按下返回按钮ok,再次推(按下GuestBook按钮),JSON数据NSLog有消息,但tableview数据没有出现!发生了什么?

PS:我使用故事板!有一个自定义单元格xib!

- (IBAction)toHostGuestBook:(id)sender {
    hgbvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ToHostGuestBookSegue"];
    hgbvc.eventidStr = eventidStr;
    NSLog(@"hgbvc.eventidStr:%@",hgbvc.eventidStr);
    [self.navigationController pushViewController:hgbvc animated:YES];

}

BM

- (IBAction)backToHostMainEventDetail:(id)sender {
    [self.navigationController popViewControllerAnimated:YES]; 
}

BM

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *GuestBookCellIdentifier = @"GuestBookCellIdentifier";

    static BOOL nibsRegistered = NO;
    if (!nibsRegistered) {
        UINib *nib = [UINib nibWithNibName:@"GuestBookCell" bundle:nil];
        [tableView registerNib:nib forCellReuseIdentifier:GuestBookCellIdentifier];
        nibsRegistered = YES;
    }

    gbcell = [tableView dequeueReusableCellWithIdentifier:GuestBookCellIdentifier];
    if (gbcell == nil) {
        gbcell = [[GuestBookCell alloc]
                   initWithStyle:UITableViewCellStyleDefault
                   reuseIdentifier:GuestBookCellIdentifier];
    }

    NSDictionary *dict = [messageRows objectAtIndex: indexPath.row];

    gbcell.nicknameStr = [dict objectForKey:@"vusr"];
    gbcell.dateStr = [dict objectForKey:@"date"];
    gbcell.messageStr = [dict objectForKey:@"message"];


    return gbcell;

}
4

3 回答 3

0

添加这个并尝试

-(void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

[self.tableView reloadData]; //your table view name

}
于 2012-11-27T11:21:36.583 回答
0

hgbvc B 控制器由 A 控制器保留。所以,当B控制器弹出时它不会释放。当 B 控制器再次推送时,没有调用 viewDidLoad 方法。

解决方法:提取tableview加载数据的方法。按下 B 时调用此方法。

在 B 控制器中:

- (void)showDataWithEventId:(NSString *)eventId
{
    //retrive data 
    //table view reload
}
于 2012-11-27T11:37:25.867 回答
0

尝试在 popViewController 代码下方重新加载表格视图数据,这是您想要的工作

于 2012-11-27T11:57:35.157 回答