在ios 8的导航栏中创建自定义后退按钮

时间:2014-11-19 17:27:57

标签: ios uinavigationcontroller

我需要自定义UINavigationBar的后退按钮。为了解决这个问题,我将UINavigationController子类化并编写了以下代码,这导致两个箭头并排:

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

在此代码中,箭头会在操作表显示时移动其位置。

- (void)navigationController:(UINavigationController *)navigationController
  willShowViewController:(UIViewController *)viewController
                animated:(BOOL)animated {
    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@""
                                                           style:UIBarButtonItemStylePlain
                                                          target:self
                                                          action:@selector(popViewControllerAnimated:)];

    [backItem setImage:[UIImage imageNamed:kBackButton]];
    [backItem setImageInsets:UIEdgeInsetsFromString(kImageInset)];
    viewController.navigationItem.leftBarButtonItem = backItem;
 }

创建后退按钮的最佳方法是:

  1. 当操作表出现时,箭头不会移动。
  2. 两个箭并排。

0 个答案:

没有答案
相关问题