【问题标题】:Changing UINavigationBar items when traversing the navigation hierarchy遍历导航层次结构时更改 UINavigationBar 项
【发布时间】:2013-05-06 14:49:38
【问题描述】:

我正在尝试使用以下代码自定义 UINavigationBar 中的项目:

    CGSize size = [UIImage imageNamed:kGlobalNavigationBarButtonBackOrange].size;
    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackOrange] forState:UIControlStateNormal];
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackPressedOrange] forState:UIControlStateHighlighted];
    [backButton addTarget:self action:@selector(dismissViewController) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Detail"];
    [item setLeftBarButtonItem:barButton];
    [item setTitleView:self.navigationItem.titleView];

    [self.navigationBar pushNavigationItem:item animated:YES];
    [self.navigationController pushViewController:vc animated:YES]; 

但是,当我运行它时,导航栏看起来并没有什么不同。

【问题讨论】:

    标签: ios uinavigationcontroller uikit


    【解决方案1】:

    您尝试做的事情应该在您的 vc 视图控制器中完成。关键在于,当一个新的视图控制器被压入堆栈时,它会被要求提供其导航项,并用于更新导航栏。

    在视图控制器的- viewDidLoad 中,创建条形按钮并将其设置为self. navigationItem. leftBarButtonItem

    您无需创建新的导航项或将任何导航项推送到导航栏。让视图控制器框架为您完成这项工作。

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      相关资源
      最近更新 更多