2017-02-16 17 views
0

がここに私の状況である条件値とのポストのための「無効化」セグエ、のiOS /スウィフト

は、私がtablewビューでポストされ、ディスプレイのリストを取得します。クリックで、それはこのセグエを経由してpostdetailビューにもたらす:Firebaseで

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    selectedIndexPath = indexPath.row 
    self.performSegue(withIdentifier: "push", sender: self) 
    self.feedTableView.reloadData() 
} 

、私のポストのいくつかは、私が「

があれば、何とかのようにD(真/偽)ブール値の条件publishedを持っていますsegueを無効にするには、値はfalseです。いくつかの投稿に「近づいてすぐ」というタイトルがあるので、それらの投稿をクリックすると何も起こりません。

万が一それがどうやってできるのですか?素敵ですね!

ありがとうございます!

EDIT -

あなたが出版された状態enter image description here

+0

post.content.contains( 'ComingSoon'){// performSegue}? –

+0

hm、アイデアはセグの作業をしないことです、どうすればそれを無効にできますか?ありがとう:) :) – tibewww

答えて

0

これを試してみてください!あなたは(場合のようなものを使用していないのはなぜ

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     guard posts[indexPath.row].title != "COMING SOON" else { 
      return 
     } 
     self.performSegue(withIdentifier: "push", sender: self) 
} 
+0

Beautifull!ありがとう、それは魅力のように動作します! – tibewww

+0

ええと私はちょうど気づいた、それは他の投稿のための良いデータにsegueしない!任意のアイデア理由:(? – tibewww

0

を見ることができ、私のDBの構造は、私はあなたがセグエを「無効にする」ことができるとは思わないが、あなたが実行することを防止することができることをあなたのdidSelectRowAtIndexPath代理人メソッドで条件付きifステートメントを使用します。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    selectedIndexPath = indexPath.row 
    // get post info 
    let post = myArrayOfPosts[selectedIndexPath] 
    // check if post is COMING SOON 
    if post.title != "COMING SOON"{ 
     // if not, trigger the segue    
     self.performSegue(withIdentifier: "push", sender: self) 
    } 
    self.feedTableView.reloadData() 
} 

私はあなたが異なる動作をする対象の他のタイトルを持っている場合は、あなたのクラスの定数で、または多分Enumに「COMING SOON」の文字列値を格納することをお勧めします。

EDIT:最初に間違って書いたif文を修正しました。私はそううまくいけば、あなたがこの編集を参照して、(評判の欠如)はまだ投稿にコメントすることはできません:)

関連する問題