gpt4 book ai didi

iphone - 根据 iOS 应用程序中的设置重新加载 UITableView

转载 作者:行者123 更新时间:2023-11-28 20:44:53 24 4
gpt4 key购买 nike

我正在尝试让 UITableView 依赖于应用内设置。根据设置的值,UITableView(在 RootViewController 中)将在表格中显示适当数量的单元格。我检查设置(由另一个 ViewController 设置并确定要在 RootViewController 的 viewWillAppear 方法中显示的单元格。这是代码:

   - (void)viewWillAppear:(BOOL)animated
{
if (menuList != nil) {
[menuList dealloc];
//[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
}

coreViewController.RootView = self;
//[self.tableView reloadData];

[[UIApplication sharedApplication] delegate];

self.title = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
MyAppAppDelegate *appDelegate = (MyAppAppDelegate *)[[UIApplication sharedApplication] delegate];

menuList = [[NSMutableArray alloc] init];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"App Setup", @"App Setup"),kSelectKey, NSLocalizedString(@"Setup App Details",@"App Setup2"),kDescriptKey, nil, kControllerKey,nil]];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 1", @"Selection 1"),kSelectKey, NSLocalizedString(@"Selection 1",@"Selection 1"),kDescriptKey, nil, kControllerKey,nil]];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 2", @"Selection 2"),kSelectKey, NSLocalizedString(@"Selection 2",@"Selection 2"),kDescriptKey, nil, kControllerKey,nil]];

if (appDelegate.Level == 1) {
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 3", @"Selection 3"),kSelectKey, NSLocalizedString(@"Selection 3",@"Selection 3"),kDescriptKey, nil, kControllerKey,nil]];
}
if (appDelegate.Level == 2) {
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 3", @"Selection 3"),kSelectKey, NSLocalizedString(@"Selection 3",@"Selection 3"),kDescriptKey, nil, kControllerKey,nil]];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 4", @"Selection 4"),kSelectKey, NSLocalizedString(@"Selection 4",@"Selection 4"),kDescriptKey, nil, kControllerKey,nil]];
}
if (appDelegate.Level == 3) {
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 3", @"Selection 3"),kSelectKey, NSLocalizedString(@"Selection 3",@"Selection 3"),kDescriptKey, nil, kControllerKey,nil]];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 4", @"Selection 4"),kSelectKey, NSLocalizedString(@"Selection 4",@"Selection 4"),kDescriptKey, nil, kControllerKey,nil]];
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Selection 5", @"Selection 5"),kSelectKey, NSLocalizedString(@"Selection 5",@"Selection 5"),kDescriptKey, nil, kControllerKey,nil]];
}
//add the final selection so that it is always last in the list
[menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Final Selection", @"Final Selection"),kSelectKey, NSLocalizedString(@"Final Selection",@"Final Selection"),kDescriptKey, nil, kControllerKey,nil]];
//[self.tableView reloadRowsAtIndexPaths:menuList withRowAnimation:true];



//[appDelegate.lastView replaceObjectAtIndex:0 withObject:[NSNumber numberWithInteger:-1]];
//[appDelegate.lastView replaceObjectAtIndex:1 withObject:[NSNumber numberWithInteger:-1]];
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
//[super viewWillAppear:animated];
}

正如您所看到的,我已经尝试了一些不同的方法来让表格重新显示(我已经留下了评论)。代码运行时,会重新创建表格,但不会更新选择 3 的单元格。 (我希望单元格仅反射(reflect)基于应用内所选级别的可用选择)

注意:我试过使用 [self.tableView reloadData]; 并且它不会重新加载表格中的第三个单元格。我忘了包含该信息。在初始加载时发生的情况是表如下所示:

Settings >
Selection 1>
Selection 2>
Final Selection>

当我更改级别时,表格如下所示:

Settings >
Selection 1>
Selection 2>
Final Selection>
Selection 4>
Final Selection>

无论我如何重新加载表(甚至使用 reloadData),都会发生这种情况。

我确定我遗漏了一些非常明显的东西,非常感谢您提供的任何帮助。

最佳答案

为什么不直接说 [self.tableView reloadData] ?应该这样做吗?

关于iphone - 根据 iOS 应用程序中的设置重新加载 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809269/

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