From 352f5c105904176449f9e238733592846fef7d17 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 20 Mar 2018 10:03:49 -0400 Subject: [PATCH] Prefer back button over dismiss In some context this makes more sense, and it will never be confusing. // FREEBIE --- Signal/src/ViewControllers/MediaPageViewController.swift | 5 ++++- SignalMessaging/categories/UIViewController+OWS.h | 4 +++- SignalMessaging/categories/UIViewController+OWS.m | 7 ++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Signal/src/ViewControllers/MediaPageViewController.swift b/Signal/src/ViewControllers/MediaPageViewController.swift index 06476c183..471acaeb1 100644 --- a/Signal/src/ViewControllers/MediaPageViewController.swift +++ b/Signal/src/ViewControllers/MediaPageViewController.swift @@ -104,7 +104,10 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou // Navigation - self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(didPressDismissButton)) + // Note: using a custom leftBarButtonItem breaks the interactive pop gesture, but we don't want to be able + // to swipe to go back in the pager view anyway, instead swiping back should show the next page. + let backButton = OWSViewController.createOWSBackButton(withTarget: self, selector: #selector(didPressDismissButton)) + self.navigationItem.leftBarButtonItem = backButton if showAllMediaButton { self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: MediaStrings.allMedia, style: .plain, target: self, action: #selector(didPressAllMediaButton)) diff --git a/SignalMessaging/categories/UIViewController+OWS.h b/SignalMessaging/categories/UIViewController+OWS.h index 9a5622870..a458d978f 100644 --- a/SignalMessaging/categories/UIViewController+OWS.h +++ b/SignalMessaging/categories/UIViewController+OWS.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. +// Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import @@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN */ - (UIBarButtonItem *)createOWSBackButton; ++ (UIBarButtonItem *)createOWSBackButtonWithTarget:(id)target selector:(SEL)selector; + @end NS_ASSUME_NONNULL_END diff --git a/SignalMessaging/categories/UIViewController+OWS.m b/SignalMessaging/categories/UIViewController+OWS.m index 6cd9a7b6a..8d24f7505 100644 --- a/SignalMessaging/categories/UIViewController+OWS.m +++ b/SignalMessaging/categories/UIViewController+OWS.m @@ -1,5 +1,5 @@ // -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. +// Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "UIView+OWS.h" @@ -42,6 +42,11 @@ NS_ASSUME_NONNULL_BEGIN } - (UIBarButtonItem *)createOWSBackButtonWithTarget:(id)target selector:(SEL)selector +{ + return [[self class] createOWSBackButtonWithTarget:target selector:selector]; +} + ++ (UIBarButtonItem *)createOWSBackButtonWithTarget:(id)target selector:(SEL)selector { OWSAssert(target); OWSAssert(selector);