質問

私は一緒に働いています SWRevealViewController アプリケーションにサイドメニューを表示します。サイドメニューからコントローラーまで期待通りに動作します。今やりたいのは、使用することです SWRevealViewController 再びあるコントローラーから別のコントローラーへ(両方とも UITableViewController).

サイドメニューからコントローラー 1、コントローラー 2:

enter image description here

これは私がこれまでにやろうとしてきたことです:

をセットアップします。 Real View Controller Segue Interface Builder から 2 番目のコントローラーへ identifier "articlesSegue".

そして、私が使用する最初のコントローラーでは didSelectRowAtIndexPath そして prepareForSegue 2 番目のコントローラーを表示するには:

- (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を使用してテストしたところ、うまくいきましたが、それでも、Push Segueで動作するよりも好きです SWRevealViewController.

この質問は見つけましたが、どのように実装する必要があるのか​​よくわかりません。 SWRevealViewController - 別のビューに手動で切り替えますか?.

役に立ちましたか?

解決

@Anbu.Kathikが説明したように、私は使用できませんでした SWReveal から移動する Controller 別の人に 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] 新しいデータをテーブルに再ロードします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top