2016-04-26 4 views
0

グループ内に静的なセルを持つTableViewControllerがあります。私はいくつかの静的なセルからsegueを実行したいと思っていますが、どういうわけかseguedのTableViewControllerでどのセルがsegueをトリガしたのか知っています。静的なセルから動的なTableViewControllerへの接続

各セルから目的のTVCにCtrl +ドラッグしてセグ識別子を追加し、TVCのクラスを作成しました。

私はこのアプローチですが、セグは機能しません。それは私が何かを逃したり、完全にトラックから外れてるXOXいずれか

class MainTableViewController { 

    viewDidLoad() { 
    tableView.delegate = self 
    tableView.dataSource = self 
    } 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     print("XOX") 
     if segue.identifier == "MainToA" {   
     if let destination = segue.destinationViewController as? DetailTableViewController { 
       destination.page = "A" 
     } 
     } 

    if segue.identifier == "MainToB" {   
     if let destination = segue.destinationViewController as? DetailTableViewController { 
       destination.page = "B" 
     } 
    } 
    } 

class DetailTableViewController { 

    var page = String() 

    viewDidLoad() { 
     print(page) 
    } 
} 

を印刷しないのですか?セグーはなぜ機能しないのですか?

答えて

1

私が試したとseguesは

あなたが画像でトリガセグエ一部を見ることができます

必ず接続しているにしてください個々のUITableViewCellに接続して正常に動作します内部のサブビューではなくセルからのセグ。それをチャットから

編集

は、ビューのタッチを占めUITapGestureを持って表示されます。 これを避けるには、RemoveTapGestureを使用して、tableView didSelectRowのメソッドを使用して表示に触れることをお勧めします。

+0

私にとってもまったく同じです。私はセルにsegueを与え、segueに識別子を付け加えました。セグをクリックすると、セルがハイライト表示され、選択もスクリーンショットと同じになります。 MainVCに何かを追加しましたか?私の何が悪いですか? – senty

+0

チャットにアクセスしようhttp://chat.stackoverflow.com/rooms/26424/iosandroidchaosoverflow – Shubhank

1

UITableViewControllerをサブクラス化しましたか? Interface Builderでそのサブクラスを割り当てましたか?オーバーライド関数numberOfSectionsInTableView(tableView: UITableView) -> Int を実装しないようにして、静的セルが実際に表示されるようにしましたか?

Ctrl +ドラッグしたときに、アクセサリアクションではなく選択によってトリガーセグをリンクしましたか?

+0

サブクラス化とはどういう意味ですか?私は 'numberOfSectionsInTableView'を使わず、静的なセルが表示されます。 Ctrlキーを押しながらドラッグすると、選択されます。また、セルをクリックすると、選択された接続インスペクタが表示されます。また、私はsegueに識別子を与えました。他に何が問題なのでしょうか? – senty

+0

クラスMainTableViewControllerはUITableViewControllerのサブクラス化が必要です。したがって、クラス定義は 'class MainTableViewController :: UITableViewController {'のようになります。これを済ませたら、インターフェースビルダーのUITableViewControllerオブジェクトをクリックし、クラスをUITableViewControllerからMainTableViewControllerに変更する必要があります。ココアのサブクラス化について読んでみる必要があります。 – Curmudgeonlybumbly

+0

はい、私はそれをしました。テーブルビューは正常に動作しています。セルは塗りつぶされ、ViewControllerからデータを取得/変更します。それはちょうどうまく動作しないsegueです – senty

関連する問題