我有一个UINavigationController
,在应用程序上有一个左右按钮,用作一个硬件的遥控器。我想通过在右侧按钮左侧的导航栏中显示一个图标来显示硬件已连接到应用程序。从文档中看起来好像我只能添加UIBarButtonItems
,这让我怀疑我的“连接LED”指示灯还有另一个更常规的位置。
所以我的问题是我可以在UINavigationController
导航栏中显示一个图标,如果没有,我应该在哪里显示它?
答案 0 :(得分:0)
UINavigationBar
是UIView
的子类,因此您可以像这样添加项目:
[navBar addSubview:whatever];
导航栏是导航控制器的属性(即您可以像self.navigationController.navigationBar
一样引用它。)
答案 1 :(得分:0)
对于这样的事情,并没有真正的“传统地方”。 :)
我怀疑这个'连接LED'应该显示在所有视图上,而不管当前视图(及其UINavigationItem
)。如果这是正确的,最简单的方法可能是不将该图标放在实际的UINavigationBar
中,而是将其作为单独的UIView
放在UINavigationBar
的超级视图中< /强>
答案 2 :(得分:0)
你应该能够以编程方式创建一个uiview并将其添加为导航栏的子视图
UIImageView *connectedView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"connected-icon.png"]];
[self.navigationController.navigationBar insertSubview:connectedView atIndex:0];
[connectedView release];
如果insertSubview无法正常工作,请尝试使用addSubview:
[self.navigationController.navigationBar addSubview:connectedView];
您可能希望将connectedView创建为属性,这样您就可以(更多)在不再“连接”时轻松删除它。
答案 3 :(得分:0)
试试这段代码
[[[yourViewController viewControllers] lastObject] navigationItem].titleView = yourImageView;
为我自定义邮件控制器中的导航栏。希望你能从这里得到一些想法。