使用不同的NSMutableArrays加载UITableView

时间:2012-03-12 09:03:13

标签: objective-c uitableview nsmutablearray

在我看来,我有4个标签按钮。点击它们后,我有4个阵列被填充。现在我需要将这些数组显示在同一个表中。根据按钮单击表中的内容应该更改。怎么办呢?

4 个答案:

答案 0 :(得分: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];

根据按钮重新绘制桌面上的信息

答案 1 :(得分:0)

您必须使用一个主数组,如tableArray1;

您必须在tableview委托和数据源方法中使用此tableArray1。

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

在viewdidload第一次给tableArray1 = array1;

当tabbutton cliked methods

就像button1

一样

然后

tableArray1 = ARRAY1;

[tableview reloadData];

if button2

然后

tableArray1 =数组2;

[tableview reloadData];

if button3

然后

tableArray1 = ARRAY3;

[tableview reloadData];

if button4

然后

tableArray1 = array4;

[tableview reloadData];

试试这个逻辑我希望这会对你有所帮助

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

添加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];
}