SWRevealViewController从一个控制器到另一个控制器

时间:2014-06-03 10:38:14

标签: ios objective-c swrevealviewcontroller

我正在使用SWRevealViewController在应用程序上设置侧边菜单。它从侧面菜单到控制器按预期工作。我现在要做的是再次从一个控制器使用SWRevealViewController到另一个控制器(UITableViewController)。

从侧边菜单到控制器1到控制器2:

enter image description here

这是我到目前为止尝试过的事情:

使用Real View Controller Segue从界面生成器设置identifier "articlesSegue"到第二个控制器。

在第一个控制器中,我使用didSelectRowAtIndexPathprepareForSegue来显示第二个控制器:

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

从列表中选择一个项目会显示为已选择,但没有任何反应。

enter image description here

我使用Push Segue测试了它并且它有效,但我更喜欢使用SWRevealViewController

我确实发现了这个问题,但我不太确定如何实施,SWRevealViewController - manually switch to another view?

1 个答案:

答案 0 :(得分:0)

正如@ Anbu.Kathik所解释的那样,我无法使用SWRevealController转移到另一个Controller。我使用相同的TableViewController解决了这个问题,我添加了一个属性type来检查哪个是当前的表格视图'只需在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];
    }
}

使用[self.tableView reloadData]使用新数据重新加载表格。