diff --git a/Yep/ViewControllers/About/AboutViewController.swift b/Yep/ViewControllers/About/AboutViewController.swift index 6af8b576..fca5564b 100644 --- a/Yep/ViewControllers/About/AboutViewController.swift +++ b/Yep/ViewControllers/About/AboutViewController.swift @@ -53,6 +53,17 @@ class AboutViewController: UIViewController { aboutTableViewHeightConstraint.constant = rowHeight * CGFloat(aboutAnnotations.count) + 1 } + + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } } // MARK: - UITableViewDataSource, UITableViewDelegate @@ -92,7 +103,10 @@ extension AboutViewController: UITableViewDataSource, UITableViewDelegate { } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.row { case Row.Pods.rawValue: diff --git a/Yep/ViewControllers/AddFriends/AddFriendsViewController.swift b/Yep/ViewControllers/AddFriends/AddFriendsViewController.swift index c76495ce..8b7f8b16 100644 --- a/Yep/ViewControllers/AddFriends/AddFriendsViewController.swift +++ b/Yep/ViewControllers/AddFriends/AddFriendsViewController.swift @@ -31,6 +31,15 @@ class AddFriendsViewController: UIViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showSearchedUsers" { if let searchText = sender as? String { @@ -119,7 +128,10 @@ extension AddFriendsViewController: UITableViewDataSource, UITableViewDelegate { } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if indexPath.section == Section.More.rawValue { diff --git a/Yep/ViewControllers/Base/BaseViewController.swift b/Yep/ViewControllers/Base/BaseViewController.swift index 06b4b495..e47ccb58 100644 --- a/Yep/ViewControllers/Base/BaseViewController.swift +++ b/Yep/ViewControllers/Base/BaseViewController.swift @@ -49,15 +49,5 @@ class BaseViewController: UIViewController { } } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { - // Get the new view controller using segue.destinationViewController. - // Pass the selected object to the new view controller. - } - */ - } + diff --git a/Yep/ViewControllers/Contacts/ContactsViewController.swift b/Yep/ViewControllers/Contacts/ContactsViewController.swift index 87e3e4ec..7144f3cd 100644 --- a/Yep/ViewControllers/Contacts/ContactsViewController.swift +++ b/Yep/ViewControllers/Contacts/ContactsViewController.swift @@ -136,7 +136,17 @@ class ContactsViewController: BaseViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + if segue.identifier == "showProfile" { let vc = segue.destinationViewController as! ProfileViewController @@ -201,7 +211,9 @@ extension ContactsViewController: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let friend = friendAtIndexPath(indexPath) { diff --git a/Yep/ViewControllers/Conversation/ConversationViewController.swift b/Yep/ViewControllers/Conversation/ConversationViewController.swift index 62ea6c7a..7ce384c6 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController.swift @@ -2771,6 +2771,15 @@ class ConversationViewController: BaseViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { guard let identifier = segue.identifier else { diff --git a/Yep/ViewControllers/Conversations/ConversationsViewController.swift b/Yep/ViewControllers/Conversations/ConversationsViewController.swift index 013565fa..71642f11 100644 --- a/Yep/ViewControllers/Conversations/ConversationsViewController.swift +++ b/Yep/ViewControllers/Conversations/ConversationsViewController.swift @@ -276,6 +276,17 @@ class ConversationsViewController: UIViewController { } } + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showConversation" { let vc = segue.destinationViewController as! ConversationViewController @@ -380,7 +391,14 @@ extension ConversationsViewController: UITableViewDataSource, UITableViewDelegat } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } + + guard navigationController?.topViewController == self else { + return + } switch indexPath.section { diff --git a/Yep/ViewControllers/Discover/DiscoverViewController.swift b/Yep/ViewControllers/Discover/DiscoverViewController.swift index 9c1a774e..40a4679d 100644 --- a/Yep/ViewControllers/Discover/DiscoverViewController.swift +++ b/Yep/ViewControllers/Discover/DiscoverViewController.swift @@ -214,6 +214,15 @@ class DiscoverViewController: BaseViewController { // MARK: - Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showProfile" { diff --git a/Yep/ViewControllers/EditProfile/EditProfileViewController.swift b/Yep/ViewControllers/EditProfile/EditProfileViewController.swift index e48d82c5..13adae61 100644 --- a/Yep/ViewControllers/EditProfile/EditProfileViewController.swift +++ b/Yep/ViewControllers/EditProfile/EditProfileViewController.swift @@ -82,6 +82,17 @@ class EditProfileViewController: UIViewController { editProfileTableView.registerNib(UINib(nibName: editProfileColoredTitleCellIdentifier, bundle: nil), forCellReuseIdentifier: editProfileColoredTitleCellIdentifier) } + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + // MARK: Actions private func updateAvatar(completion:() -> Void) { @@ -355,7 +366,9 @@ extension EditProfileViewController: UITableViewDataSource, UITableViewDelegate func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.section { diff --git a/Yep/ViewControllers/FeedConversations/FeedConversationsViewController.swift b/Yep/ViewControllers/FeedConversations/FeedConversationsViewController.swift index ffc0870f..1d6cea92 100644 --- a/Yep/ViewControllers/FeedConversations/FeedConversationsViewController.swift +++ b/Yep/ViewControllers/FeedConversations/FeedConversationsViewController.swift @@ -89,6 +89,15 @@ class FeedConversationsViewController: UIViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showConversation" { let vc = segue.destinationViewController as! ConversationViewController @@ -161,7 +170,10 @@ extension FeedConversationsViewController: UITableViewDataSource, UITableViewDel } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let cell = tableView.cellForRowAtIndexPath(indexPath) as? FeedConversationCell { performSegueWithIdentifier("showConversation", sender: cell.conversation) diff --git a/Yep/ViewControllers/Feeds/FeedsViewController.swift b/Yep/ViewControllers/Feeds/FeedsViewController.swift index d41e2f82..4e6db7c8 100644 --- a/Yep/ViewControllers/Feeds/FeedsViewController.swift +++ b/Yep/ViewControllers/Feeds/FeedsViewController.swift @@ -555,6 +555,15 @@ class FeedsViewController: BaseViewController { // MARK: - Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { guard let identifier = segue.identifier else { @@ -1062,7 +1071,9 @@ extension FeedsViewController: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.section { diff --git a/Yep/ViewControllers/FriendsInContacts/FriendsInContactsViewController.swift b/Yep/ViewControllers/FriendsInContacts/FriendsInContactsViewController.swift index a0ecb658..225c738a 100644 --- a/Yep/ViewControllers/FriendsInContacts/FriendsInContactsViewController.swift +++ b/Yep/ViewControllers/FriendsInContacts/FriendsInContactsViewController.swift @@ -104,6 +104,15 @@ class FriendsInContactsViewController: BaseViewController { // MARK: - Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showProfile" { @@ -143,7 +152,10 @@ extension FriendsInContactsViewController: UITableViewDataSource, UITableViewDel } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } performSegueWithIdentifier("showProfile", sender: indexPath) } diff --git a/Yep/ViewControllers/Login/LoginByMobileViewController.swift b/Yep/ViewControllers/Login/LoginByMobileViewController.swift index 0150eaf8..7a3536b3 100644 --- a/Yep/ViewControllers/Login/LoginByMobileViewController.swift +++ b/Yep/ViewControllers/Login/LoginByMobileViewController.swift @@ -151,6 +151,15 @@ class LoginByMobileViewController: BaseViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showLoginVerifyMobile" { diff --git a/Yep/ViewControllers/NewFeed/NewFeedViewController.swift b/Yep/ViewControllers/NewFeed/NewFeedViewController.swift index a109db42..8d7cdb3f 100644 --- a/Yep/ViewControllers/NewFeed/NewFeedViewController.swift +++ b/Yep/ViewControllers/NewFeed/NewFeedViewController.swift @@ -413,6 +413,15 @@ class NewFeedViewController: UIViewController { } // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { diff --git a/Yep/ViewControllers/NewFeedVoiceRecord/NewFeedVoiceRecordViewController.swift b/Yep/ViewControllers/NewFeedVoiceRecord/NewFeedVoiceRecordViewController.swift index 997502c6..ca32efd4 100644 --- a/Yep/ViewControllers/NewFeedVoiceRecord/NewFeedVoiceRecordViewController.swift +++ b/Yep/ViewControllers/NewFeedVoiceRecord/NewFeedVoiceRecordViewController.swift @@ -411,6 +411,15 @@ class NewFeedVoiceRecordViewController: UIViewController { // MARK: - Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { guard let identifier = segue.identifier else { diff --git a/Yep/ViewControllers/Notifications/NotificationsViewController.swift b/Yep/ViewControllers/Notifications/NotificationsViewController.swift index 9ff5d87e..e25869c3 100644 --- a/Yep/ViewControllers/Notifications/NotificationsViewController.swift +++ b/Yep/ViewControllers/Notifications/NotificationsViewController.swift @@ -112,6 +112,15 @@ class NotificationsViewController: UIViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showDoNotDisturbPeriod" { @@ -357,7 +366,10 @@ extension NotificationsViewController: UITableViewDataSource, UITableViewDelegat } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.section { case 0: diff --git a/Yep/ViewControllers/PickLocation/PickLocationViewController.swift b/Yep/ViewControllers/PickLocation/PickLocationViewController.swift index 82343f50..6d9c752a 100644 --- a/Yep/ViewControllers/PickLocation/PickLocationViewController.swift +++ b/Yep/ViewControllers/PickLocation/PickLocationViewController.swift @@ -189,6 +189,15 @@ class PickLocationViewController: UIViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { guard let identifier = segue.identifier else { @@ -549,7 +558,9 @@ extension PickLocationViewController: UITableViewDataSource, UITableViewDelegate func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let selectedLocationIndexPath = selectedLocationIndexPath { if let cell = tableView.cellForRowAtIndexPath(selectedLocationIndexPath) as? PickLocationCell { diff --git a/Yep/ViewControllers/PodsHelpYep/PodsHelpYepViewController.swift b/Yep/ViewControllers/PodsHelpYep/PodsHelpYepViewController.swift index 2642deab..e90591bf 100644 --- a/Yep/ViewControllers/PodsHelpYep/PodsHelpYepViewController.swift +++ b/Yep/ViewControllers/PodsHelpYep/PodsHelpYepViewController.swift @@ -111,7 +111,10 @@ class PodsHelpYepViewController: UITableViewController { } override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } let pod = pods[indexPath.row] diff --git a/Yep/ViewControllers/Profile/ProfileViewController.swift b/Yep/ViewControllers/Profile/ProfileViewController.swift index 9e978968..19eb9268 100644 --- a/Yep/ViewControllers/Profile/ProfileViewController.swift +++ b/Yep/ViewControllers/Profile/ProfileViewController.swift @@ -1173,6 +1173,15 @@ class ProfileViewController: UIViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { guard let identifier = segue.identifier else { diff --git a/Yep/ViewControllers/Register/RegisterPickAvatarViewController.swift b/Yep/ViewControllers/Register/RegisterPickAvatarViewController.swift index 1a174371..c5a35ac2 100644 --- a/Yep/ViewControllers/Register/RegisterPickAvatarViewController.swift +++ b/Yep/ViewControllers/Register/RegisterPickAvatarViewController.swift @@ -145,6 +145,17 @@ class RegisterPickAvatarViewController: UIViewController { nextButton.enabled = false } + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + // MARK: Helpers private func deviceWithMediaType(mediaType: String, preferringPosition position: AVCaptureDevicePosition) -> AVCaptureDevice? { diff --git a/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift b/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift index c91a5d67..3865030b 100644 --- a/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift +++ b/Yep/ViewControllers/Register/RegisterPickMobileViewController.swift @@ -165,11 +165,19 @@ class RegisterPickMobileViewController: UIViewController { } } }) - } // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showRegisterVerifyMobile" { diff --git a/Yep/ViewControllers/Register/RegisterPickNameViewController.swift b/Yep/ViewControllers/Register/RegisterPickNameViewController.swift index 015701ed..65b3272b 100644 --- a/Yep/ViewControllers/Register/RegisterPickNameViewController.swift +++ b/Yep/ViewControllers/Register/RegisterPickNameViewController.swift @@ -87,6 +87,17 @@ class RegisterPickNameViewController: BaseViewController { nameTextField.becomeFirstResponder() } + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + // MARK: Actions @objc private func tapTerms(sender: UITapGestureRecognizer) { diff --git a/Yep/ViewControllers/Register/RegisterPickSkillsViewController.swift b/Yep/ViewControllers/Register/RegisterPickSkillsViewController.swift index a968a146..3efb4111 100644 --- a/Yep/ViewControllers/Register/RegisterPickSkillsViewController.swift +++ b/Yep/ViewControllers/Register/RegisterPickSkillsViewController.swift @@ -166,6 +166,15 @@ class RegisterPickSkillsViewController: BaseViewController { // MARK: Navigaition + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "presentSelectSkills" { diff --git a/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift b/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift index d6680c0f..3339ee76 100644 --- a/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift +++ b/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift @@ -93,6 +93,17 @@ class RegisterVerifyMobileViewController: UIViewController { callMeTimer.fire() } + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + // MARK: Actions @objc private func activeAgain(notification: NSNotification) { diff --git a/Yep/ViewControllers/SearchedUsers/SearchedUsersViewController.swift b/Yep/ViewControllers/SearchedUsers/SearchedUsersViewController.swift index 3d33db6a..bfebcf3b 100644 --- a/Yep/ViewControllers/SearchedUsers/SearchedUsersViewController.swift +++ b/Yep/ViewControllers/SearchedUsers/SearchedUsersViewController.swift @@ -66,6 +66,15 @@ class SearchedUsersViewController: BaseViewController { // MARK: Navigation + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "showProfile" { if let indexPath = sender as? NSIndexPath { @@ -104,7 +113,10 @@ extension SearchedUsersViewController: UITableViewDataSource, UITableViewDelegat } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } performSegueWithIdentifier("showProfile", sender: indexPath) } diff --git a/Yep/ViewControllers/Settings/SettingsViewController.swift b/Yep/ViewControllers/Settings/SettingsViewController.swift index 2b01f6cd..8d214183 100644 --- a/Yep/ViewControllers/Settings/SettingsViewController.swift +++ b/Yep/ViewControllers/Settings/SettingsViewController.swift @@ -76,6 +76,17 @@ class SettingsViewController: BaseViewController { } } } + + // MARK: Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } } extension SettingsViewController: UITableViewDataSource, UITableViewDelegate { @@ -141,7 +152,10 @@ extension SettingsViewController: UITableViewDataSource, UITableViewDelegate { } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.section { diff --git a/Yep/ViewControllers/SkillHome/SkillHomeViewController.swift b/Yep/ViewControllers/SkillHome/SkillHomeViewController.swift index b7496a78..2527ff8e 100644 --- a/Yep/ViewControllers/SkillHome/SkillHomeViewController.swift +++ b/Yep/ViewControllers/SkillHome/SkillHomeViewController.swift @@ -420,6 +420,15 @@ class SkillHomeViewController: BaseViewController { } // MARK: - Navigation + + override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { + + guard navigationController?.topViewController == self else { + return false + } + + return true + } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { @@ -638,7 +647,10 @@ extension SkillHomeViewController: UITableViewDelegate, UITableViewDataSource { } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch indexPath.section { diff --git a/Yep/ViewControllers/SocialWorks/SocialWorkGithubViewController.swift b/Yep/ViewControllers/SocialWorks/SocialWorkGithubViewController.swift index b8626e87..8884573f 100644 --- a/Yep/ViewControllers/SocialWorks/SocialWorkGithubViewController.swift +++ b/Yep/ViewControllers/SocialWorks/SocialWorkGithubViewController.swift @@ -225,7 +225,9 @@ extension SocialWorkGithubViewController: UITableViewDataSource, UITableViewDele func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } let repo = githubRepos[indexPath.row] diff --git a/Yep/Views/ConversationMore/ConversationMoreView.swift b/Yep/Views/ConversationMore/ConversationMoreView.swift index 779e5221..7e7f253a 100644 --- a/Yep/Views/ConversationMore/ConversationMoreView.swift +++ b/Yep/Views/ConversationMore/ConversationMoreView.swift @@ -529,7 +529,9 @@ extension ConversationMoreView: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } switch type { case .OneToOne: diff --git a/Yep/Views/DiscoverFilter/DiscoverFilterView.swift b/Yep/Views/DiscoverFilter/DiscoverFilterView.swift index 56353714..726e56b4 100644 --- a/Yep/Views/DiscoverFilter/DiscoverFilterView.swift +++ b/Yep/Views/DiscoverFilter/DiscoverFilterView.swift @@ -324,7 +324,9 @@ extension DiscoverFilterView: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let row = Row(rawValue: indexPath.row) { diff --git a/Yep/Views/MoreMessageTypes/MoreMessageTypesView.swift b/Yep/Views/MoreMessageTypes/MoreMessageTypesView.swift index 1a614bee..740b0718 100644 --- a/Yep/Views/MoreMessageTypes/MoreMessageTypesView.swift +++ b/Yep/Views/MoreMessageTypes/MoreMessageTypesView.swift @@ -267,7 +267,9 @@ extension MoreMessageTypesView: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let row = Row(rawValue: indexPath.row) { switch row { diff --git a/Yep/Views/NewFeedTypes/NewFeedTypesView.swift b/Yep/Views/NewFeedTypes/NewFeedTypesView.swift index 680a885b..0648819f 100644 --- a/Yep/Views/NewFeedTypes/NewFeedTypesView.swift +++ b/Yep/Views/NewFeedTypes/NewFeedTypesView.swift @@ -295,7 +295,9 @@ extension NewFeedTypesView: UITableViewDataSource, UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + defer { + tableView.deselectRowAtIndexPath(indexPath, animated: true) + } if let row = Row(rawValue: indexPath.row) {