2016-10-19 3 views
1

私はセグエに好かこの2つのコントローラーを持っている:セグエストーリーボード条件の問題

enter image description here

私の問題は、ということです。私は、一般的にview'cell選択したテーブルの上にタップすると

は私が従わなければなりませんsegueなので、他のコントローラーに行きますが、特定の条件が真であれば、私は広告の警告表示をしなければならないので、セグに従わず、そのコントローラーには行かないでください。

このように、選択したセルをタップすると、常に他のコントローラに移動します。

この問題を解決するにはどうすればよいですか?

+0

「選択したテーブルビューセルをタップする」とはどういう意味ですか? 「セルをタップすると」と言いたいのですか? – Adeel

答えて

0

セグをトリガーする正確なビューを指定せずに、コントローラ間でセグを追加できます。コントローラ間のセグエを追加するには

if condition { 
    performSegue(withIdentifier: "MySegueIdentifier", sender: nil) 
} 
else { 
    //show ad here 
} 

だけ別のコントローラからマウスの右ボタンでドラッグして、「表示」を選ぶ:それからちょうどあなたが新しいビューコントローラを表示する必要がある場合didSelectRow方法であなたの状態をチェックし、performSegueメソッドを呼び出します。

enter image description here

その後セグエを選択し、そのための文字列識別子を追加します。

enter image description here

あなたがperformSegueメソッドを呼び出すときに、コード内で同じ文字列を使用していることを確認してください。

+0

私は理解していません:条件が真でない場合、私は特定のコントローラに行く必要はありませんが、警告表示のみを表示します。どのように私はテーブルビューのセルからコントローラへのセグをリンクするのですか?あなたは良く説明できますか?あなたの時間にとてもありがとうございました – alexander

+0

答えを更新してください。もしあれば質問をしてください。 – alexburtnik

1

この関数をオーバーライドすると、segueは失敗します。falseを返すと、特定の条件の下で警告を表示し、その後SegueWithIdentifier( "segueidentifier"、送信者:self) 。

override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject?) -> Bool { 

    if identifier == "segueidentifier" { 
     //show warning and perform segue with this identifier on the accept button listener. 
     return false 
    } 
} 
    return true 
} 
関連する問題