Question

je travaille avec SWRevealViewController avoir un menu latéral sur une application.Cela fonctionne comme prévu depuis le menu latéral vers un contrôleur.Ce que j'aimerais faire maintenant, c'est utiliser SWRevealViewController à nouveau d'un contrôleur à un autre (les deux UITableViewController).

Du menu latéral au contrôleur 1 au contrôleur 2 :

enter image description here

Voici ce que j'ai essayé de faire jusqu'à présent :

Mettre en place le Real View Controller Segue de l'Interface Builder au deuxième contrôleur avec identifier "articlesSegue".

Et dans le premier contrôleur que j'utilise didSelectRowAtIndexPath et prepareForSegue pour afficher le deuxième contrôleur :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Set selected issue to var
    _selectedIssue = _feedItems[indexPath.row];

    // Manually call segue to detail view controller
    [self performSegueWithIdentifier:@"articlesSegue" sender:self];
}

#pragma mark Segue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get reference to the destination view controller
    TableViewController *tableVC = segue.destinationViewController;

    // data used in the second Controller
    tableVC.self.type = @"category";
    tableVC.self.data = [_selectedIssue.ID stringValue];
}

La sélection d'un élément dans la liste s'affiche comme sélectionné mais rien ne se passe.

enter image description here

Je l'ai testé à l'aide d'un Push Segue et cela a fonctionné, je le préfère néanmoins à travailler avec SWRevealViewController.

J'ai trouvé cette question mais je ne sais pas trop comment elle doit être mise en œuvre, SWRevealViewController - passer manuellement à une autre vue ?.

Était-ce utile?

La solution

Comme @Anbu.Kathik l'a expliqué, je ne pouvais pas utiliser le SWReveal passer de Controller à un autre Controller.Je l'ai résolu en utilisant le même TableViewController, j'ai ajouté une propriété type pour vérifier quelle est la "tableview" actuelle et simplement mettre à jour la table lorsqu'un élément est sélectionné sur didSelectRowAtIndexPath.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // check type of current tableview - if category display article
    if ([self.type isEqualToString:@"category"]) {
        // display single article
        _selectedArticle = _feedItems[indexPath.row];
        [self performSegueWithIdentifier:@"detailSegue" sender:self];
    }
    else {
        // else if issue display list of articles on the same TableViewController
        _selectedIssue = _feedItems[indexPath.row];
        self.type = @"category";
        self.data = [_selectedIssue.ID stringValue];
        [_homeModel downloadItems:self.type :self.data];
    }
}

En utilisant [self.tableView reloadData] recharge la table avec de nouvelles données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top