gpt4 book ai didi

ios - 在 tableView 中重新加载数据时出现问题

转载 作者:行者123 更新时间:2023-11-28 22:09:34 25 4
gpt4 key购买 nike

我试图在用户登录时根据用户帐户权限在 TableView 中重新加载数据。

这里面涉及到的两个类是:

mainViewControllermenuViewController

目前我可以使用

[self.tableView reloadData];

viewWillAppear 方法中调用时重新加载数据。这对我不利,因为用户在加载 View 时尚未登录,因此此时没有数据可填充表。

我在 menuViewController.h 中创建了一个名为 populateTable 的方法,我在按下按钮时在 mainViewController.m 文件中调用该方法;

(IBAction)Reload:(id)sender { 
menuViewController *mvc = [[menuViewController alloc]init];
[mvc populateTable];
}

这似乎工作正常,因为我在执行的 populateTable 方法中有一个 NSLog。但是 reloadData 不起作用。

这是我的 populateTable 方法;

-(void)populateTable {
self.section1 = [NSMutableArray arrayWithObjects:@"test settings", @"test", @"test",@"Users and access",@"No-track IPs", nil];
self.section2 = [NSMutableArray arrayWithObjects:@"Rules", @"Channels",@"Goals",@"Pages", nil];
self.menu = [NSMutableArray arrayWithObjects:self.section1, self.section2, nil];
[self.tableView reloadData];
NSLog(@"Reloading data");
}

你们能帮帮我吗,我整天都在盯着这个看,一无所获,谢谢!

最佳答案

根据我的经验,这可能是时间问题 - 当您在其上调用 reloadData 时,self.tableViewIBOutlet 尚未准备好(添加一个 NSLog 并亲自查看 - 调用时为 nil

要解决这个问题,必须在 UIViewController 的 viewDidLoad 方法中调用 populateTable 方法。这保证了导出不为零,并且一切都准备好用于您的数据填充。

此外,您不应使用 [[MenuViewController alloc] init] 实例化您的 MenuViewController,而应使用 Storyboard的 instantiateViewControllerWithIdentifier

关于ios - 在 tableView 中重新加载数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com