我有一个UINavigationController
,在应用程序的左侧和右侧按钮用作一个硬件的遥控器。我想通过在右侧按钮左侧的导航栏中显示一个图标来显示硬件已连接到应用程序。从文档看起来好像我只能添加UIBarButtonItems
,这让我怀疑我的“连接的LED”指示灯还有另一个更传统的位置。将UIBarItem添加到UINavigationController或替代
所以我的问题是我可以在UINavigationController
导航栏中显示图标,如果没有,我应该在哪里显示它?
我有一个UINavigationController
,在应用程序的左侧和右侧按钮用作一个硬件的遥控器。我想通过在右侧按钮左侧的导航栏中显示一个图标来显示硬件已连接到应用程序。从文档看起来好像我只能添加UIBarButtonItems
,这让我怀疑我的“连接的LED”指示灯还有另一个更传统的位置。将UIBarItem添加到UINavigationController或替代
所以我的问题是我可以在UINavigationController
导航栏中显示图标,如果没有,我应该在哪里显示它?
UINavigationBar
是UIView
的子类,这样就可以像这样将项目添加到它:
[navBar addSubview:whatever];
导航栏是导航控制器的一个属性(即,可以像这样引用它self.navigationController.navigationBar
)。
对于这样的事情,并不存在真正的“传统地点”。 :)
我怀疑这“连接的LED”应当被显示在所有视图中,不论当前视图(及其UINavigationItem
)。如果这是正确的,最简单的方法很可能是不把那个图标,在实际UINavigationBar
,而是把它作为一个独立的UIView
在UINavigationBar
的上海华。
你应该能够只创建一个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;
借机对我来说,在邮件控制器定制导航栏。希望你从这里得到一些想法。