Изменить источник данных tableview с помощью двух кнопок UIB - PullRequest
0 голосов
/ 31 октября 2011

с UITableView и его источником данных является NSMutableArray, который на самом деле является разобранным XML-файлом; В том же виде у меня есть две UIB-кнопки с одним и тем же методом действия, как я могу переключать источник данных таблицы просмотра?

При нажатии кнопки A для загрузки источника данных1 и B для загрузки источника данных2

- (void)buttonsAction: (id)sender {
    
    BOOL activateSecond = _firstButton.selected;
    _firstButton.selected = !activateSecond;
    _secondButton.selected = activateSecond;
}

    dataSource1 = [[NSMutableArray alloc]init];
    nodecontent = [[NSMutableString alloc]init];
        
    NSString *xmlURL = @"http://mydomain.com/file.xml";
    NSData *xmlData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:xmlURL]];
    xmlParserObject = [[NSXMLParser alloc]initWithData:xmlData];
    [xmlParserObject setDelegate:self];
    [xmlParserObject parse];
    [xmlData release];

Любая подсказка?

Ответы [ 2 ]

4 голосов
/ 31 октября 2011

Шаг 1: загрузка данных в ваши массивы (если вы выбираете из xml / web, сделайте это, я применил здесь static)

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.arOne=[NSArray arrayWithObjects:@"Sagar",@"Amit",@"Nimit",@"Paresh",@"Rakesh",@"Yogesh", nil];
    self.arTwo=[NSArray arrayWithObjects:@"Supreeth",@"Deepthy",@"Ankit",@"Sandeep",@"Gomathy", nil];
    [self.tableView reloadData];
}

шаг 2: разместить условное кодирование для tableViewCell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.textLabel.text=[(self.btnTapped.selected)?self.arTwo:self.arOne objectAtIndex:indexPath.row];
    return cell;
}

шаг 3: подключить действие к вашей кнопке (здесь кнопка называется btnTapped)

- (IBAction)btnTitle:(id)sender {
    self.btnTapped.selected=!self.btnTapped.selected;
    [self.tableView reloadData];
}
0 голосов
/ 31 октября 2011

Когда вы нажимаете вторую кнопку, удаляете все элементы из ваших массивов источников данных, такие как

[dataSource1 removeAllObjects];  

, а затем анализируете xml и добавляете данные в эти массивы, и когда анализ завершается, перезагрузите ваш tableView, выполнив

[tbl reloadData];

Надеюсь, это поможет ....

...