使用不同的 NSMutableArrays 加载 UITableView

Posted

技术标签:

【中文标题】使用不同的 NSMutableArrays 加载 UITableView【英文标题】:Loading the UITableView with different NSMutableArrays 【发布时间】:2012-03-12 09:03:12 【问题描述】:

在我看来,我有 4 个标签按钮。单击它们后,我将填充 4 个数组。现在我需要将这些数组显示到同一个表中。根据按钮单击表中的内容应该改变。如何做到这一点?

【问题讨论】:

【参考方案1】:

根据您选择的按钮加载一个或另一个表,例如:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    // Return the number of rows in the section.
    if (buttonSelected == 1) return [myArray1 count];
else if (buttonSelected == 2) return [myArray2 count];

所有这些都适用于表格视图的所有数据源/委托。

还有一件事,按下按钮后别忘了打电话:

[myTableView reloadData];

根据按钮重绘表格上的信息

【讨论】:

【参考方案2】:

添加UITabBarControllerDelegate

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController   

switch (tabBarController.selectedIndex) 
    case 1:
        table_mutableArray=nil;
        [table_mutableArray addObjectsFromArray:tab1_array];

        break;
     case 2:
        table_mutableArray=nil;
        [table_mutableArray addObjectsFromArray:tab2_array];

        break;
     case 3:
        table_mutableArray=nil;
        [table_mutableArray addObjectsFromArray:tab3_array];

        break;
    default:
        table_mutableArray=nil;
        [table_mutableArray addObjectsFromArray:tab4_array];
        break;

[tableview reloadData];

【讨论】:

【参考方案3】:

你必须取一个像 tableArray1 这样的主数组;

你必须在 tableview 委托和数据源方法中使用这个 tableArray1。

你有四个数组作为array1,array2,array3和array4;

在viewdidload第一次给tableArray1=array1;

tabbutton点击方法时

like if button1

然后

tableArray1=array1;

[表格视图重载数据];

如果按钮2

然后

tableArray1=array2;

[表格视图重载数据];

如果按钮3

然后

tableArray1=array3;

[表格视图重载数据];

如果按钮4

然后

tableArray1=array4;

[表格视图重载数据];

试试这个逻辑,希望对你有帮助

【讨论】:

【参考方案4】:

您应该实现表源委托方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

他们应该根据您正在显示的当前选择的数组返回数据。

然后,当一个按钮被点击时,调用表的reloadData方法来更新它。

【讨论】:

以上是关于使用不同的 NSMutableArrays 加载 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

存储少量 NSMutableArrays(使用 plist)?

使用 NSData 和 NSMutableArrays 保存 OS X 游戏数据

iOS 想知道使用 CoreData ManagedObjects 或 NSMutableArrays 哪种搜索方法最有效?

如何创建一个包含许多 NSMutableArrays 的 NSMutableDictionary

将 NSMutableArrays 填充到自定义部分

存储和检索多维 NSMutableArrays 的最佳方法是啥?