首先,我解释一下我在做什么。我创建了基于导航的应用程序。我必须在导航栏中添加自定义图像。我使用 -
添加了图像 [self.navigationController.navigationBar insertSubview:image atIndex:0]
;
在此之后,我在同一视图的导航栏中左右添加了两个自定义按钮。我有另一个视图,在此视图中,我还在导航栏左右添加了两个自定义按钮。一切都很好,直到现在,但当我导航到我的第二个视图时,我添加到viewwillappear上的导航控制器的自定义按钮不会显示。我使用此代码将自定义按钮添加到导航栏 -
UIBarButtonItem *customHome = [[UIBarButtonItem alloc] initWithCustomView: buttonHome];
[self.navigationController.navigationItem setLeftBarButtonItem:customHome];
请说明这有什么问题。 :(
答案 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
协议,它几乎没有使用但有用的方法。)