隐藏自定义导航栏按钮的导航栏中的自定义图像

时间:2011-12-29 11:26:40

标签: uinavigationcontroller uibarbuttonitem uinavigationitem

首先,我解释一下我在做什么。我创建了基于导航的应用程序。我必须在导航栏中添加自定义图像。我使用 -

添加了图像

[self.navigationController.navigationBar insertSubview:image atIndex:0];

在此之后,我在同一视图的导航栏中左右添加了两个自定义按钮。我有另一个视图,在此视图中,我还在导航栏左右添加了两个自定义按钮。一切都很好,直到现在,但当我导航到我的第二个视图时,我添加到viewwillappear上的导航控制器的自定义按钮不会显示。我使用此代码将自定义按钮添加到导航栏 -

UIBarButtonItem *customHome = [[UIBarButtonItem alloc] initWithCustomView: buttonHome];
[self.navigationController.navigationItem setLeftBarButtonItem:customHome];

请说明这有什么问题。 :(

2 个答案:

答案 0 :(得分:0)

您正尝试在导航控制器上设置navigationItem而不是视图控制器。

答案 1 :(得分:0)

如果您已将UIViewController嵌入UINavigationController,然后嵌入视图控制器的viewDidLoad,则可以将标题设为UISearchBar(您拖动了到Xcode IB中的UIViewController并在右边放两个按钮:

    UIBarButtonItem *componentsButton = [[UIBarButtonItem alloc] initWithTitle:@"components" style:UIBarButtonItemStylePlain target:self action:@selector(componentsButtonTapped:)];
    UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"settings" style:UIBarButtonItemStylePlain target:self action:@selector(settingsButtonTapped:)];
    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:componentsButton, settingsButton, nil];
    self.navigationItem.titleView = searchBar;

此处的问题是管理UINavigationController的{​​{1}}和UINavigationBar共同管理的UINavigationItem之间的区别。 (不要忘记UINavigationController协议,它几乎没有使用但有用的方法。)