首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RootViewController中的UIToolbar

RootViewController中的UIToolbar
EN

Stack Overflow用户
提问于 2012-05-20 04:30:08
回答 3查看 1.1K关注 0票数 0

当我的应用程序启动时,我需要UIToolbar。它将出现在整个应用程序的每个屏幕上。因此,我将其添加到RootViewController中。

代码语言:javascript
复制
#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize mainViewController = _mainViewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
// Override point for customization after application launch.
self.mainViewController = [[[MainViewController alloc]init]autorelease];
self.window.rootViewController = self.mainViewController;
[self.window makeKeyAndVisible];
return YES;
}

目前我有UIToolbar in MainViewController

代码语言:javascript
复制
 // create the UIToolbar at the bottom of the MainViewController
toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleBlackOpaque;
// size up the toolbar and set its frame
toolbar.frame = CGRectMake(0, 425, 320, 40);
[self.view addSubview:toolbar];

在我的所有其他UIViewControllers中,我都是这样添加它的

代码语言:javascript
复制
[self.view addSubview:toolbar]; 

我可不想这样。我想让UIToolbar在附加到rootviewcontroller后自动显示在我所有的其他UIViewControllers中。因此,当我翻转UIViewController以更改为另一个UIViewController时。只有UIViewController应该翻转,而不是UIToolbar.Right,现在UIToolbar也在与UIViewController翻转。这就是我想把它附加到rootviewcontroller上的原因。

那么,如何添加UIToolbar in APPDelegate文件并将其附加到rootviewcontroller

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-20 05:52:53

代码中的一切看起来都没问题,除了在创建UIToolbar时,出于某种原因,此时您需要创建自己的语法。这就是创建UIToolBar的方法

示例:

代码语言:javascript
复制
UIToolbar *toolBar = [UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44);

认真地说,您的代码不会编译,您将确切知道在哪一行。将这些点连接起来,并搜索如何创建UIToolbar。

编辑:

对于在每个视图中显示的工具栏,您有以下几个选项:

(1)确定不需要UINavigationController & UINavigationBar?

(2)将其附加到UIWindow (即在窗口中添加两个子视图)。这必须用代码来创建,我不相信界面生成器会起作用。

(3)只需在每个视图加载(init或viewDidLoad方法)时创建它

好的,所以你必须将工具栏添加到每个视图控制器(即addSubView)。唯一的另一种方法是向AppDelegate中添加两个subViews。

票数 2
EN

Stack Overflow用户

发布于 2012-05-20 05:29:05

我不相信你说的

代码语言:javascript
复制
toolbar = [UIToolbar new];

另外,你有没有谷歌过如何以编程的方式创建UIToolbar?

票数 1
EN

Stack Overflow用户

发布于 2012-05-20 07:50:25

现在只有UIViewController应该翻转而不是UIToolbar.Right,UIToolbar也在与UIViewController翻转。这就是我想把它附加到rootviewcontroller的原因。

我可以想到两种方法来做到这一点:

  1. 使用导航控制器提供的工具栏。您不应该尝试直接访问该工具栏--使用UIViewController的-setToolbarItems:animated:方法为每个视图控制器设置所需的项。如果您为每个视图控制器提供相同的工具栏项集,您将获得您想要的外观。我确实注意到我的快速实验中有一点闪动,但这是为所有视图获取标准工具栏的一种非常快速和简单的方法。
  2. 创建您自己的容器控制器。随着iOS 5的引入,我们能够编写我们自己的容器控制器,即视图控制器,可以像UINavigationController和UITabBarController一样在自己内部托管其他视图控制器。因此,您可以很容易地编写自己的容器,并让它托管您的工具栏。这听起来像是您已经在尝试做的事情,但是您必须意识到,您没有获得该功能automatically.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10668636

复制
相关文章

相似问题

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