在我看来,我有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];
}