2017-02-16 37 views
0

здесь моя ситуация,переход «Отключить» на пост с условным значением IOS/Swift

на мое приложение, я получаю список после того дисплея, тем tablew. по щелчку, он принесет к виду postdetail через этот Segue:

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

С Firebase, некоторые из моего поста есть условие published с логическое значение (истина/ложь)

Я бы как-то, если значение находится на false, чтобы отключить сеанс. Поскольку некоторые должности имеют название «COMING SOON», ничего не должно происходить при нажатии этих сообщений.

Вы знаете, как это возможно сделать, если это возможно? Будет прекрасно!

Большое спасибо!

EDIT -

Это структура моей БД, где вы можете увидеть изданную состояние enter image description here

+0

Почему бы вам не использовать что-то вроде если (post.content.contains (! «ComingSoon») {// performSegue}? –

+0

hm, идея состоит в том, чтобы не работать в segue, как вы можете его отключить? Спасибо :) :) – 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

hmm Я только что заметил, он не перешел к хорошим данным для других сообщений !!! Любая идея, почему :(? – tibewww

0

Я не думаю, что вы можете «отключить» а переход, но вы можете предотвратить его проводить используя условный оператор if в вашем делететом didSelectRowAtIndexPath.

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, если у вас есть другие названия, для которых требуется другое поведение.

EDIT: Я исправил утверждение if, которое я неправильно написал в первую очередь. Я не могу комментировать сообщения пока (отсутствие репутации), так что надеюсь, вы видите это изменение :)

 Смежные вопросы

  • Нет связанных вопросов^_^