Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Unified Diff: ios/chrome/browser/ui/settings/settings_navigation_controller.mm

Issue 2589193002: Revert to the old back arrow style with NavigationBar (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/settings/settings_navigation_controller.mm
diff --git a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
index 8c4e774e626c0a8b367c59b12c4c7f09c0b8a394..7940e977f8ce492e9cfa6840e4b08f7768f7c95f 100644
--- a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
@@ -78,6 +78,11 @@
// Closes the settings by calling |closeSettings| on |delegate|.
- (void)closeSettings;
+// Creates an autoreleased Back button for a UINavigationItem which will pop the
+// top view controller when it is pressed. Should only be called by view
+// controllers owned by SettingsNavigationController.
+- (UIBarButtonItem*)backButton;
+
// Creates an autoreleased "X" button that closes the settings when tapped.
- (UIBarButtonItem*)closeButton;
@@ -319,6 +324,10 @@ initWithRootViewController:(UIViewController*)rootViewController
[delegate_ closeSettings];
}
+- (void)back {
+ [self popViewControllerAnimated:YES];
+}
+
- (void)popViewControllerOrCloseSettingsAnimated:(BOOL)animated {
if (self.viewControllers.count > 1) {
// Pop the top view controller to reveal the view controller underneath.
@@ -351,6 +360,14 @@ initWithRootViewController:(UIViewController*)rootViewController
[[rightButton title] compare:[doneButton title]] == NSOrderedSame;
}
+- (UIBarButtonItem*)backButton {
+ // Create a custom Back bar button item, as Material Navigation Bar deprecated
+ // the back arrow with a shaft.
+ return [ChromeIcon templateBarButtonItemWithImage:[ChromeIcon backIcon]
+ target:self
+ action:@selector(back)];
+}
+
- (UIBarButtonItem*)doneButton {
// Create a custom Done bar button item, as Material Navigation Bar does not
// handle a system UIBarButtonSystemItemDone item.
@@ -408,6 +425,12 @@ initWithRootViewController:(UIViewController*)rootViewController
- (void)pushViewController:(UIViewController*)viewController
animated:(BOOL)animated {
+ // Add a back button if the view controller is not the root view controller
+ // and doesn’t already have a left bar button item.
+ if (self.viewControllers.count > 0 &&
+ viewController.navigationItem.leftBarButtonItems.count == 0) {
+ viewController.navigationItem.leftBarButtonItem = [self backButton];
+ }
// Wrap the view controller in an MDCAppBarContainerViewController if needed.
[super pushViewController:[self wrappedControllerIfNeeded:viewController]
animated:animated];
« no previous file with comments | « ios/chrome/browser/ui/settings/settings_egtest.mm ('k') | ios/chrome/browser/ui/settings/translate_ui_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698