development

제목없는 UINavigationBar 사용자 정의 뒤로 버튼

big-blog 2020. 4. 17. 08:14
반응형

제목없는 UINavigationBar 사용자 정의 뒤로 버튼


제목없이 iOS 7 이상에서 탐색 뒤로 버튼을 어떻게 사용자 정의 할 수 있습니까? (화살표 만)

self.navigationItem.leftBarButtonItem = self.editButtonItem;

나는 그들이 self.backButtonItem을 가지고 있는지 궁금합니다.

또는

이 같은?

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
                   initWithBarButtonSystemItem:UIBarButtonSystemItemBACK 
                   target:self action:@selector(back)];

실제로는 매우 쉽습니다. 여기 내가하는 일이 있습니다.

목표 C

// Set this in every view controller so that the back button displays back instead of the root view controller name
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

스위프트 2

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)

스위프트 3

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

이 행을 스택으로 밀고있는 뷰 컨트롤러 ( 이전 뷰 컨트롤러 )에 넣습니다 . 새로 푸시 된 뷰 컨트롤러 뒤로 버튼은 이제 initWithTitle에 넣은 모든 것을 보여줍니다 (이 경우 빈 문자열).


iOS 단일 화살표로 뒤로 버튼을 만드는 쉬운 방법을 찾았습니다.

네비게이션 컨트롤러가 ViewB에서 ViewA로 이동한다고 가정 해 봅시다. IB에서 ViewA의 탐색 모음을 선택하면 제목, 프롬프트 및 뒤로 버튼 옵션이 표시됩니다.

ViewA 탐색 모음 옵션

ViewA 탐색 모음 옵션

트릭은 이전 보기 컨트롤러 (보기 A) 의 옵션에서 운명보기 컨트롤러 뒤로 버튼 제목 (ViewB)을 선택하는 것입니다 . "뒤로 단추"옵션을 채우지 않으면 iOS는 이전 보기 컨트롤러의 제목 과 함께 제목을 "뒤로"자동으로 넣습니다 . 따라서이 옵션을 단일 공백으로 채워야합니다.

"뒤로 단추"옵션으로 공간 채우기

"뒤로 단추"옵션으로 공간 채우기

결과:

결과:


그냥 이미지를 사용하십시오!

OBJ-C :

- (void)viewDidLoad {
     [super viewDidLoad];
     UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Icon-Back"]
                                                                                        style:UIBarButtonItemStylePlain
                                                                                       target:self.navigationController
                                                                                       action:@selector(popViewControllerAnimated:)];
     self.navigationItem.leftBarButtonItem = backButton;
}

스위프트 4 :

let backBTN = UIBarButtonItem(image: UIImage(named: "Back"), 
                              style: .plain, 
                              target: navigationController, 
                              action: #selector(UINavigationController.popViewController(animated:)))
navigationItem.leftBarButtonItem = backBTN
navigationController?.interactivePopGestureRecognizer?.delegate = self

Icon-Back.png

아이콘 백

Icon-Back@2x.png

Icon-Back @ 2x

Icon-Back@3x.png

Icon-Back @ 23x


iOS7에는 새로운 인터페이스 규칙이 있으므로 UIView를 누를 때 최소한 뒤로 화살표를 유지하는 것이 좋습니다. 프로그래밍 방식으로 "뒤로"텍스트를 변경하는 것은 매우 쉽습니다. 보기를 푸시하기 전에이 코드를 추가하십시오 (StoryBoards를 사용중인 경우에는 PreparingForSegue).

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
      self.navigationItem.backBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"NEW TITLE" style:UIBarButtonItemStylePlain target:nil action:nil];
}

기본 "뒤로"텍스트가 변경되지만 iOS7 스타일의 뒤로 화살표는 유지됩니다. 보기를 누르기 전에 뒤로 화살표의 색조 색상을 변경할 수도 있습니다.

- (void)viewDidLoad{
     //NavBar background color:
     self.navigationController.navigationBar.barTintColor=[UIColor redColor];
//NavBar tint color for elements:
     self.navigationController.navigationBar.tintColor=[UIColor whiteColor];
}

이것이 도움이 되길 바랍니다!


할 일이 많지 않습니다. 스토리 보드 자체를 통해 동일한 결과를 얻을 수 있습니다.

루트 내비게이션 컨트롤러로 이동하여 공간을 확보하십시오. 제목이없는 뒤로 버튼을 원하는 컨트롤러가 아니라 루트 탐색 컨트롤러를 기억하십시오.

아래 이미지에 따라.  이것은 iOS 7 및 iOS 8에서 작동합니다.


하지만 카일 Begeman의 대답은 완전히 트릭을 수행, 가능한 컨트롤러 모든보기에서이 코드가 꽤 성가신입니다. 나는 간단한 UINavigationItem범주로 끝났다 . 조심하십시오, 여기 용입니다! 죄송합니다.

#import <objc/runtime.h>

@implementation UINavigationItem (ArrowBackButton)

static char kArrowBackButtonKey;

+ (void)load {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        Method m1 = class_getInstanceMethod(self, @selector(backBarButtonItem));
        Method m2 = class_getInstanceMethod(self, @selector(arrowBackButton_backBarButtonItem));
        method_exchangeImplementations(m1, m2);
    });
}

- (UIBarButtonItem *)arrowBackButton_backBarButtonItem {
    UIBarButtonItem *item = [self arrowBackButton_backBarButtonItem];
    if (item) {
        return item;
    }

    item = objc_getAssociatedObject(self, &kArrowBackButtonKey);
    if (!item) {
        item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:NULL];
        objc_setAssociatedObject(self, &kArrowBackButtonKey, item, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }
    return item;
}

@end

편집 : 2014-04-09 : 명성을 얻었을 때 더 이상이 트릭을 사용하지 않기 때문에 미안합니다. 카일의 대답을 추천합니다. 또한 selfof self.navigationItem.backBarButtonItem는 뷰 컨트롤러 뒤로 버튼이 표시되지 않지만 이전 뷰 컨트롤러는 되돌아갑니다.

이전 뷰 컨트롤러에 제목 텍스트가 필요하지 않은 경우 제목을 빈 문자열로 채 웁니다.

self.navigationItem.title = @"";
[self.navigationController pushViewController:viewController animated:YES];

이렇게하면 푸시 뷰 컨트롤러에서 갈매기 형 표시기가 "뒤로"표시되지 않습니다.

편집 : 빈 제목이 아닌 제목 텍스트를 사용하더라도 viewWillAppear:뷰 컨트롤러가 팝업 될 때 제목이 깜박 거리는 것을 제외하고는 이전 뷰 컨트롤러의 제목을 설정하십시오 . "twitter 앱"은 깜박임을 피하기 위해 더 미묘한 해킹을하는 것 같습니다.


이것은 작동하지만 다시 팝업해도 이전 항목의 제목이 제거됩니다.

self.navigationController.navigationBar.topItem.title = @"";

viewDidLoad푸시 된 View Controller 에서이 속성을 설정하기 만하면됩니다 .


이것이 내가하는 방법이며 가장 간단하고 작동하며 가장 명확한 방법입니다.

임베드시 작동합니다. Navigation Controller

스위프트 3

에서 viewDidLoad내가보기 컨트롤러이 추가 당신은 뒤로 버튼 그냥 화살표가되고 싶어요.

if let topItem = self.navigationController?.navigationBar.topItem {
   topItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

@Kyle Begeman의 대답과의 차이점은 푸시 스택보기 컨트롤러가 아니라 뒤로 버튼이 화살표가되도록하려는보기 컨트롤러에서 이것을 호출한다는 것입니다.


원하는 방식으로 탐색 backButtonItem에 액세스 할 수 없으므로 아래와 같이 자신의 뒤로 버튼을 만들어야합니다.

- (void)loadView
{
    [super loadView];
    UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 44.0f, 30.0f)];
    [backButton setImage:[UIImage imageNamed:@"back.png"]  forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(popVC) forControlEvents:UIControlEventTouchUpInside];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
}

그리고 오프 코스 :

- (void) popVC{
  [self.navigationController popViewControllerAnimated:YES];
}

iOS6의 간단한 해킹은 iOS7에서도 작동합니다.

[UIBarButtonItem.appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

편집 : 이 핵을 사용하지 마십시오. 자세한 내용은 의견을 참조하십시오.


대상 : 모든 뒤로 버튼을UINavigationBar흰색 아이콘으로 맞춤 설정

단계 : 1. AppDelete의 "didFinishLaunchingWithOptions"메소드에서 :

UIImage *backBtnIcon = [UIImage imageNamed:@"navBackBtn"];


if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    [UINavigationBar appearance].tintColor = [UIColor whiteColor];
    [UINavigationBar appearance].backIndicatorImage = backBtnIcon;
    [UINavigationBar appearance].backIndicatorTransitionMaskImage = backBtnIcon;
}else{

    UIImage *backButtonImage = [backBtnIcon resizableImageWithCapInsets:UIEdgeInsetsMake(0, backBtnIcon.size.width - 1, 0, 0)];
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage  forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -backButtonImage.size.height*2) forBarMetrics:UIBarMetricsDefault];
}

viewDidLoad공통 수퍼 ViewController클래스 방법에서 2 .

 if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@""
                                                                     style:UIBarButtonItemStylePlain
                                                                    target:nil
                                                                    action:nil];
        [self.navigationItem setBackBarButtonItem:backItem];
    }else{
        //do nothing
    }

스위프트 4

사용자 정의 뒤로 버튼을 만들고 제목을 제거하려는 경우 뷰 컨트롤러 내에서 새 코드를 푸시하는 다음 코드를 사용하십시오.

self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "close")
self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "close")
self.navigationItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

보다 보편적으로 사용하려면 다음을 수행하십시오.

  1. 다음과 같이 범용 함수를 작성하십시오.

    func addCustomizedBackBtn(navigationController: UINavigationController?, navigationItem: UINavigationItem?) {
        navigationController?.navigationBar.backIndicatorImage = UIImage(named: "close")
        navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "close")
        navigationItem?.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }
    
  2. 그런 다음 다음과 같이 뷰 컨트롤러에서 사용하십시오.

    addCustomizedBackBtn(navigationController: self.navigationController, navigationItem: self.navigationItem)
    

이것을 사용할 수 있습니다. 이것은에 UIButton대한 custumview로 추가하여 나에게 완벽하게 작동 합니다 UIBarButtonItem.

아래 코드를 사용해보십시오

    self.navigationItem.leftBarButtonItem=[self backButton];


- (UIBarButtonItem *)backButton
{
    UIImage *image = [UIImage imageNamed:@"back-btn.png"];
    CGRect buttonFrame = CGRectMake(0, 0, image.size.width, image.size.height);

    UIButton *button = [[UIButton alloc] initWithFrame:buttonFrame];
    [button addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [button setImage:image forState:UIControlStateNormal];

    UIBarButtonItem *item= [[UIBarButtonItem alloc] initWithCustomView:button];

    return item;
}

모든 답변으로 문제가 해결되지는 않습니다. 모든 뷰 컨트롤러에서 버튼 제목을 뒤로 설정하는 것은 허용되지 않으며 타이틀에 오프셋을 추가하면 다음 뷰 컨트롤러 제목이 오른쪽으로 이동합니다.

다음은 메소드 스위 즐링을 사용하는 메소드입니다. UINavigationItem에 대한 새 확장을 작성하십시오.

import UIKit

extension UINavigationItem {
    public override class func initialize() {

    struct Static {
        static var token: dispatch_once_t = 0
    }

    // make sure this isn't a subclass
    if self !== UINavigationItem.self {
        return
    }

    dispatch_once(&Static.token) {
        let originalSelector = Selector("backBarButtonItem")
        let swizzledSelector = #selector(UINavigationItem.noTitleBackBarButtonItem)

        let originalMethod = class_getInstanceMethod(self, originalSelector)
        let swizzledMethod = class_getInstanceMethod(self, swizzledSelector)

        let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))

        if didAddMethod {
            class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
        } else {
            method_exchangeImplementations(originalMethod, swizzledMethod)
        }
    }
}

// MARK: - Method Swizzling

struct AssociatedKeys {
    static var ArrowBackButtonKey = "noTitleArrowBackButtonKey"
}

func noTitleBackBarButtonItem() -> UIBarButtonItem? {
    if let item = self.noTitleBackBarButtonItem() {
        return item
    }

    if let item = objc_getAssociatedObject(self, &AssociatedKeys.ArrowBackButtonKey) as? UIBarButtonItem {
        return item
    } else {
        let newItem = UIBarButtonItem(title: " ", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
        objc_setAssociatedObject(self, &AssociatedKeys.ArrowBackButtonKey, newItem as UIBarButtonItem?, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        return newItem
    }
}
}

UILabel루트 뷰 컨트롤러에 원하는 제목으로를 생성하고 뷰 컨트롤러에 할당하십시오 navigationItem.titleView.

이제 제목을 빈 문자열로 설정하면 다음에 볼 컨트롤러에 텍스트가없는 뒤로 버튼이 있습니다.

self.navigationItem.titleView = titleLabel; //Assuming you've created titleLabel above
self.title = @"";

 // add left bar button item

try this code:

- (void)viewDidLoad
{ 
    [super viewDidLoad];

   UIImage* image_back = [UIImage imageNamed:@"your_leftarrowImage.png"];
    CGRect backframe = CGRectMake(250, 9, 15,21);
    UIButton *backbutton = [[UIButton alloc] initWithFrame:backframe];
    [backbutton setBackgroundImage:image_back forState:UIControlStateNormal];
    [backbutton addTarget:self action:@selector(Btn_back:)
         forControlEvents:UIControlEventTouchUpInside];
    [backbutton setShowsTouchWhenHighlighted:YES];
    UIBarButtonItem *backbarbutton =[[UIBarButtonItem alloc] initWithCustomView:backbutton];
    self.navigationItem.leftBarButtonItem=backbarbutton;
    [backbutton release];

}
-(IBAction)Btn_back:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];

}

UINavigationController를 서브 클래 싱하고 자신을 대리자로 설정하고 대리자 메서드에서 backBarButtonItem을 설정할 수 있습니다. navigationController:willShowViewController:animated:

@interface Custom_NavigationController : UINavigationController <UINavigationControllerDelegate>

@end

@implementation Custom_NavigationController

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.delegate = self;
}

#pragma mark - UINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationController     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
}

@end

제목을 비우기

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@""  style:UIBarButtonItemStyleDone target:self action:@selector(handleBack:)];
[backButton setTintColor:Color_WHITE];
[self.navigationItem setBackBarButtonItem:backButton];

이미지 변경

 UIImage *backImg = [[UIImage imageNamed:@"ic_back_white"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorImage = backImg;
[UINavigationBar appearance].backIndicatorTransitionMaskImage = backImg;

iOS 5부터 문제 없이이 솔루션을 사용하고 있습니다. 뷰 컨트롤러에서 호출하는 유틸리티 기능을 만들었습니다. viewDidLoad 또는 그 이후의 지점에서 수행해야합니다.

void updateBackButtonTextForViewController(UIViewController *viewController, NSString *text)
{
    if(! viewController.navigationItem.backBarButtonItem)
    {
        viewController.navigationItem.backBarButtonItem =
        [[UIBarButtonItem alloc] initWithTitle:text
                                         style:UIBarButtonItemStylePlain
                                        target:nil action:nil];
    }
    else
    {
        viewController.navigationItem.backBarButtonItem.title = text;
    }
}

어떤 경우에는 탐색 항목이 이미 존재하고 다른 경우에는 탐색 항목을 작성해야합니다. 탐색 항목 제목을 망설이지 않고 두 경우 모두를 설명합니다. 단순히 전달하여 제목을 제거 할 수 있습니다 @"".


viewDidLoad에 다음 코드를 적용했으며 작동합니다.

  // this will set the back button title
self.navigationController.navigationBar.topItem.title = @"Test";

 // this line set the back button and default icon color  

//[[self.navigationController.navigationBar.subviews lastObject] setTintColor:[UIColor blackColor]];

this line change the back default icon to your custom icon
[[self.navigationController.navigationBar.subviews lastObject] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"menuicon"]]];

업데이트하려면 Vector Icon을 사용하십시오.


나를 위해 일한 유일한 방법은 다음과 같습니다.

navigationController?.navigationBar.backItem?.title = ""

최신 정보:

segue 애니메이션 플래그를 true로 변경했을 때 (이전에는 false였습니다), 나를 위해 일한 유일한 방법은 다음과 같습니다.

navigationController?.navigationBar.topItem?.title = ""

Navigation Controller에 두 개의 ViewController (FirstVC, SecondVC)가 포함되어 있고 SecondVC에는 뒤로 화살표 만있는 경우

FirstVC의 ViewDidLoad에서 시도해 볼 수 있습니다.

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
}

그런 다음 SecondVC를 누르면 뒤로 화살표 만 나타납니다.


NavigationBar의 tintColor를 설정 한 경우 제목없이 사용자 정의 뒤로 버튼 이미지를 추가하면 색조 색상에 이미지 색상이 반영됩니다. 이 사과 문서 링크를 따르십시오.

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/index.html#//apple_ref/doc/uid/TP40012857-UIView-SW7

UINavigationItem *navItem = [[UINavigationItem alloc] init];
   navBar.tintColor = self.tintColor;

   UIImage *myImage = [UIImage imageNamed:@"left_arrow.png"];
     myImage = [myImage              imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

     UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(cancelButtonFunction:)];
     navItem.leftBarButtonItem = leftButton;

    navBar.items = @[ navItem ];

이 답변을 확인

UINavigationController 뒤로 버튼 이름을 변경하는 방법은 무엇입니까?

아래와 같이 하나의 공백으로 title텍스트를 설정 하십시오string

title = " "

의견을 추가 할만큼 평판이 충분하지 않습니다 :)


이것을 쉽게하기 위해 확장 기능을 작성했습니다.

extension UIViewController {

    /// Convenience for setting the back button, which will be used on any view controller that this one pushes onto the stack
    @objc var backButtonTitle: String? {
        get {
            return navigationItem.backBarButtonItem?.title
        }
        set {
            if let existingBackBarButtonItem = navigationItem.backBarButtonItem {
                existingBackBarButtonItem.title = newValue
            }
            else {
                let newNavigationItem = UIBarButtonItem(title: newValue, style:.plain, target: nil, action: nil)
                navigationItem.backBarButtonItem = newNavigationItem
            }
        }
    }

}

viewWillDisappear에서 제목을 현재 ViewController의 @ ""로 변경할 수 있으며 제목이 다시 표시 될 때 제목을 이전의 내용으로 재설정하십시오.

-(void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.title = @"Previous Title";
}

-(void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    self.title = @"";
}

첫 번째 ViewController의 PreparingForSegue : 메소드에서 뷰 제목을 @ ""로 설정하므로 다음 뷰를 누르면 이전 ViewController 제목 인 @ ""가 표시됩니다.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    self.navigationItem.title = @" ";
}

이것의 유일한 문제는 뒤로 버튼을 눌렀을 때 이전보기에 제목이 없으므로 viewWillAppear에 다시 추가 할 수 있다는 것입니다.

-(void)viewWillAppear:(BOOL)animated{
   self.navigationItem.title = @"First View Title";
}

나는이 솔루션을별로 좋아하지 않지만 작동하지만 다른 방법을 찾지 못했습니다.


의 Thomas C의 답변에 추가하기 위해 때로는 단일 공백을 넣는 것이 효과가 없으므로 공백을 계속 추가해야합니다.

빈 바 버튼

"탐색 항목"아래에 "바 단추 항목-"이 표시되면 성공한 것입니다. 그것은 문서 개요 (편집기-> 문서 개요 표시)에 있습니다. 위의 그림이 보이면 몇 개의 공백을 삭제하고 여전히 작동하는지 확인할 수 있습니다.


- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom initialization
        self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

    }
    return self; 
}

Kyle Begeman과 마찬가지로 루트 뷰 컨트롤러에서 위의 코드를 추가합니다. 모든 서브 뷰 컨트롤러가 적용됩니다. 또한 이것을 initWithCoder : 메소드에 추가하면 xib, 스토리 보드 또는 코드 기반 접근 방식의 루트 뷰 컨트롤러 스타일을 적용 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/18870128/uinavigationbar-custom-back-button-without-title

반응형