6

簡単に言えば、私はバックテーブルVCとフロントテーブルVCを持つ私のアプリでスライドナビゲーションビューコントローラを持っています。バックテーブルVC内の選択されたセルは、フロントテーブルVC(ナビゲーションVCに埋め込まれている)にセグします。説明するために、ここでは正常に動作し、それを有する単離変更前の設定とコードは以下のとおりです。SWRevealViewControllerセルがセグを実行していません

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as UITableViewCell 
    return navigationCell 
} 

enter image description hereここ enter image description here enter image description here

が私の背中テーブルにVCのcellForRowAtIndexPath方法簡素化作業のコードです

よろしくお願いします。私が望むのは、上記のデフォルトのUITableViewCellを、Xibファイル内の私のカスタムセルの1つに置き換えることです。今私が修正したものを説明します。まず、私のNavigationCell.xibファイルに私のXibセルがあります。特にない。

enter image description here enter image description here

マイNavigationCellクラスコードは、単に

import UIKit 

class NavigationCell: UITableViewCell { 
    @IBOutlet var nameLabel: UILabel! 
} 

最後に、私はXIBを登録し、カスタムセルをデキューするために私の背中テーブルVCに私のコードを変更されます。

override func viewDidLoad() { 
    super.viewDidLoad() 
    let navigationCellNib = UINib(nibName: "NavigationCell", bundle: nil) 
    tableView.registerNib(navigationCellNib, forCellReuseIdentifier: "NavigationCell") 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as! NavigationCell 
    return navigationCell 
} 

他のコードと仕様はすべて同じです。新しいカスタムセルのストーリーボードセグは、この質問の最初のスクリーンショットに示すように、まだクラスSWRevealViewControllerSeguePushControllerからです。私は単純にデフォルトのUITableViewCellをカスタムXibセルと入れ替えました。

この変更は、セグが発生するのを防ぐのに十分でした。この修正では、バックテーブルのVCナビゲーションメニューをスライドさせてカスタムナビゲーションセル(適切に表示されている)の1つを選択してビルドして実行した後、セグをトリガーしません。何かご意見は?

+0

私はこれまでSWRevealControllerを使用していましたが、これは面倒です。 segueをpushControllerではなくsetControllerにしようとしましたか? – NSGangster

+0

私はそれを前後して無駄にしました。ナビゲーションセルをタップすると、デフォルトのライトグレーでハイライト表示され、 'didSelectRowAtIndexPath'メソッドがトリガーされますが、これはそれが実行される限りです。 – Aaron

+0

私はSWRevealController http://www.appcoda.com/ios-programming-sidebar-navigation-menu/で最初に困惑していたときに使ったチュートリアルです。ほとんどの設定はメニュー項目の実装というセクションにあります。 segue識別子が必要で、segueメソッドを準備する必要があります。また、適切なsw_front、sw_rear segue識別子があることを確認してください。これは良いチュートリアルです。 – NSGangster

答えて

4

私はばかです。 didSelectRowAtIndexPathでプログラムでsegueを実行する必要がありました。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("MySegue", sender: self) 
} 
関連する問題