簡體   English   中英

如何設置自定義視圖后退按鈕

[英]How do I set a custom view back button

在View Controller A中,在viewDid加載中,我具有以下內容:

UIImage * backButtonImage = [UIImage imageNamed: @"bar-arrow"];
UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = b;

仍在下一個視圖控制器的導航中。 酒吧我得到這個:

在此處輸入圖片說明

換句話說,仍顯示IOS7的原始后退箭頭。 無法擺脫它!

通常從NativationBar隱藏默認的后退按鈕:

[self.navigationItem setHidesBackButton:YES animated:YES];   
[self.navigationItem setHidesBackButton:YES];

並執行以下代碼:

    UIButton *BackButton =  [UIButton buttonWithType:UIButtonTypeCustom];
    [BackButton setImage:[UIImage imageNamed:@"bar-arrow"] forState:UIControlStateNormal];
    [BackButton addTarget:self action:@selector(prevButtonAction)forControlEvents:UIControlEventTouchUpInside];
    [BackButton setFrame:CGRectMake(0, 0, 12, 20)];// set as par your need


    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:BackButton];
    self.navigationItem.leftBarButtonItem = barButton;


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

如果您想保留后退按鈕功能而只更改人字形圖像(並且僅針對iOS 7.0及更高版本),則可以按以下方式更改圖像:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationController.navigationBar.backIndicatorImage = [UIImage imageNamed:@"bar-arrow"];
    self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"bar-arrow-transition-mask"];
}

或者,如果您要UINavigationController ,則建議這樣做:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationBar.backIndicatorImage = [UIImage imageNamed:@"bar-arrow"];
    self.navigationBar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"bar-arrow-transition-mask"];
}

...,其中“ bar-arrow-transition-mask”圖像是代表另一個圖像“ bar-arrow”的可見性的圖像。 在此蒙版圖像中,alpha值為零的像素將在過渡期間完全隱藏運動標題,而alpha值為1的像素將完全顯示運動標題。

盡管這將需要您制作新圖像,但它應該非常快速且易於制作,並且該解決方案保留了所有導航欄功能,而不會弄亂leftBarButtonItemleftBarButtonItems以及添加對popViewControllerAnimated:手動調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM