我UINavigationController
在一个应用程序上有一个左右按钮,用作一个硬件的遥控器。我想通过在右侧按钮左侧的导航栏中显示一个图标来表明硬件已连接到应用程序。从文档看来,我只能添加UIBarButtonItems
这让我怀疑我的“已连接 LED”指示灯还有另一个更传统的位置。
所以我的问题是我可以在UINavigationController
导航栏中显示一个图标吗?如果不能,我应该在哪里显示它?
我UINavigationController
在一个应用程序上有一个左右按钮,用作一个硬件的遥控器。我想通过在右侧按钮左侧的导航栏中显示一个图标来表明硬件已连接到应用程序。从文档看来,我只能添加UIBarButtonItems
这让我怀疑我的“已连接 LED”指示灯还有另一个更传统的位置。
所以我的问题是我可以在UINavigationController
导航栏中显示一个图标吗?如果不能,我应该在哪里显示它?
对于这样的事情,真的没有一个“传统的地方”。:)
我怀疑这个“连接的 LED”应该显示在所有视图上,无论当前视图(及其UINavigationItem
)如何。如果这是正确的,最简单的方法可能是不将该图标放在实际的 中UINavigationBar
,而是将它作为一个单独UIView
的图标放在UINavigationBar
的superview中。
UINavigationBar
是 的子类UIView
,因此您可以像这样向其中添加项目:
[navBar addSubview:whatever];
导航栏是导航控制器的一个属性(即你可以像这样引用它self.navigationController.navigationBar
)。
您应该能够以编程方式创建一个 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 创建为属性,以便在不再“连接”时可以(更)轻松地将其删除。
试试这个代码
[[[yourViewController viewControllers] lastObject] navigationItem].titleView = yourImageView;
为我在邮件控制器中自定义导航栏工作。希望你能从这里得到一些想法。