Загрузка UITableView с различными NSMutableArrays - PullRequest
1 голос
/ 12 марта 2012

У меня на мой взгляд 4 кнопки табуляции. При нажатии на них у меня есть 4 массива, заполняющихся. Теперь мне нужно отобразить эти массивы в той же таблице. в зависимости от нажатия кнопки содержимое таблицы должно измениться. Как это можно сделать?

Ответы [ 4 ]

1 голос
/ 12 марта 2012

В зависимости от выбранной кнопки вы загружаете одну или другую таблицу, что-то вроде:

- (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];

Чтобы перерисовать информацию на вашем столе в зависимости от кнопки

0 голосов
/ 12 марта 2012

добавить 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];
}
0 голосов
/ 12 марта 2012

Вы должны реализовать методы делегата источника таблицы:

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

Они должны возвращать данные, основанные на текущем выбранном массиве, который вы отображаете.

Затем, когда кнопка нажата, вызовите метод reloadData таблицы, чтобы обновить ее.

0 голосов
/ 12 марта 2012

Вы должны взять один основной массив, например tableArray1;

Вы должны использовать этот tableArray1 в методах делегата табличного представления и источника данных.

У вас есть четыре массива в качестве массивов1, массив2, массив3 и массив4;

В viewdidload первый раз дать tableArray1 = array1;

при нажатии кнопки Tabbutton

как если бы button1

тогда

tableArray1 = array1;

[tableview reloadData];

если кнопка2

затем

tableArray1 = array2;

[tableview reloadData];

если button3

тогда

tableArray1 = array3;

[tableview reloadData];

если кнопка4

тогда

tableArray1 = array4;

[tableview reloadData];

попробуйте эту логику, надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...