首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIToolbar中的Persistent UIBarButtonItem?

UIToolbar中的Persistent UIBarButtonItem?
EN

Stack Overflow用户
提问于 2009-07-02 02:03:41
回答 3查看 4.6K关注 0票数 2

我一直在开发一个iPhone应用程序,它使用UIToolbar (在UINavigationController的上下文中)在屏幕底部显示一个小的状态图标。工具栏最终也会有与之相关联的操作图标(想想邮件应用程序)。

我遇到了一个问题,似乎每个推入导航控制器堆栈的UIViewController都应该有自己的一组项供工具栏显示,因此,对于每个视图转换,"status“项都会淡出和淡入。

有没有办法在工具栏中有一个持久的项目?我还尝试在导航控制器的初始化器中添加该项目(我为此方法创建了UINavigationController的子类),但仍然没有成功。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-02 03:40:04

不使用导航控制器的工具栏,而是直接向窗口添加一个工具栏,并调整导航控制器的视图框架的大小以避免出现这种情况。然后,该单个全局工具栏将始终可见。

如果您使用的是基于导航的应用程序模板,并且使用的是Interface Builder,则应执行以下步骤:

  1. 打开应用代理的.h文件。
  2. 将应用代理的实例variables.
  3. Switch的IBOutlet UIToolbar * toolbar;添加到.m文件中。
  4. 找到显示[window addSubview:[navigationController view]];的行,并在该行后面添加:

CGRect frame = navigationController.view.frame;

frame.size.height -= toolbar.frame.size.height;

用于在toolbar方法中释放MainWindow.xib.

  • Open的代码。

  • 打开窗口。

  • 将工具栏拖到window.

  • Connect的底部将工具栏拖到应用程序委派的工具栏outlet

  • 现在设置工具栏-向其中添加所需的任何项目,然后在应用程序委派中创建所需的任何出口和操作,并将它们连接起来。

< code >G228

由于工具栏是窗口的一部分,而不是导航控制器的一部分,因此导航控制器不应该接触它。

票数 7
EN

Stack Overflow用户

发布于 2009-07-02 02:17:51

当您将新视图推送到导航控制器上时,工具栏中的视图将替换为堆栈顶部视图的工具栏中的视图。

即使你有一个静态视图(当你推送一个新的控制器时,这个视图不会改变),这个视图看起来仍然是新的,因为当你推送一个新的视图控制器到堆栈上时,苹果包含的动画。

票数 0
EN

Stack Overflow用户

发布于 2011-11-14 18:49:51

我发现这对我很有效:

代码语言:javascript
运行
复制
CGFloat height = [self.toolbar frame].size.height;
CGRect rootBounds = self.window.rootViewController.view.bounds;
CGRect frame = CGRectMake(0, CGRectGetHeight(rootBounds) - height, CGRectGetWidth(rootBounds), height);   
[self.toolbar setFrame:frame];
[self.navigationController.view addSubview:self.toolbar];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1072080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档