Pergunta

Eu estou trabalhando com SWRevealViewController para ter um do lado do menu em um aplicativo.Ele funciona como esperado no menu lateral para um controlador.O que eu gostaria de fazer agora é usar SWRevealViewController novamente a partir de um controlador para outro (ambos UITableViewController).

A partir do Menu Lateral para o Controlador 1 Controlador 2:

enter image description here

Isso é o que eu tentei fazer até agora:

Configurar o Real View Controller Segue a partir da Interface Builder para o segundo Controlador com identifier "articlesSegue".

E no primeiro Controlador de eu usar didSelectRowAtIndexPath e prepareForSegue para mostrar o segundo Controlador:

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

Selecionando um item de lista é exibido como selecionada, mas nada acontece.

enter image description here

Eu testei com um Empurrão Segue e funcionou, ainda prefiro ele para trabalhar com SWRevealViewController.

Eu achei essa pergunta, mas eu não estou muito certo de como ele deve ser implementado, SWRevealViewController - manualmente alternar para outro modo de exibição?.

Foi útil?

Solução

Como O @Anbu.Kathik explicou que eu não poderia utilizar o SWReveal para mover a partir de Controller para outro Controller.Que eu tenha resolvido utilizando o mesmo TableViewController, Eu adicionei uma propriedade type para verificar qual é a atual "tableview' e simplesmente atualizando a tabela quando um item é selecionado no 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];
    }
}

Usando [self.tableView reloadData] recarrega a tabela com os novos dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top