簡體   English   中英

導航欄后退按鈕不起作用

[英]Navigation Bar Back Button not working

我正在嘗試添加自定義后退按鈕,以便可以在彈出控制器之前執行一些任務。 但是,無論我多么努力嘗試將此功能與后退按鈕綁定都無法正常工作。 我添加一些代碼來了解

-(void)customizeNavigationBar
{
    self.navigationController.navigationBarHidden = NO;
    self.navigationItem.title = @"Video Call";

   UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
              initWithTitle:@" " style:UIBarButtonItemStylePlain 
              target:self action:@selector(didBackBtnTap)];
   [self.navigationItem setBackBarButtonItem:backButton];
}

這是根本不調用的函數,

-(void)didBackBtnTap
{
    [self popToProfileScreen];
}

請提出任何解決方案,謝謝。

使用leftbarbutton項而不是setBackBarButtonItem

self.navigationItem.leftBarButtonItem = backButton;

當您使用setLeftBarButtonItemsetBackBarButtonItem ,它將對您要推送到的viewController生效,但對當前的viewController無效。 這就是為什么您需要直接設置當前的leftBarButtonItem

另一個選擇是在viewWillDisappear中編寫您的自定義代碼。

使用此代碼

UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 15, 15);
[backButton setImage:[UIImage imageNamed:@"backButtonImage"] forState:UIControlStateNormal];
[backButton setTitle:@"Back" forState:UIControlStateNormal];
backButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
[backButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

在xcasstes backButtonImage中添加類似於 NavigationBar的后退按鈕的圖像(15 * 15,@ 1x @ 2x @ 3x)

- (void)backButtonPressed {}

暫無
暫無

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

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