0

UIToolbar我的应用程序启动时需要。它将出现在整个应用程序的每个屏幕上。所以为此我将它添加到RootViewController.

#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

 // 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即时通讯中添加它是这样的

[self.view addSubview:toolbar]; 

我不想要。我想UIToolbarUIViewControllers附加到rootviewcontroller. 这样当我翻转UIViewController到另一个时UIViewController。只是UIViewController应该翻转不UIToolbar。现在UIToolbar也翻转着UIViewController。所以这就是我想将它附加到rootviewcontroller.

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

感谢帮助。

4

3 回答 3

2

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

例子:

UIToolbar *toolBar = [UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44);

说真的,你的代码不会编译,你会确切地知道在哪一行。连接点和 Google 如何创建 UIToolbar。

编辑:

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

(1) 你确定你不想要 UINavigationController & UINavigationBar 吗?

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

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

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

于 2012-05-19T21:52:52.897 回答
1

我不相信你说

toolbar = [UIToolbar new];

另外,您是否搜索过如何以编程方式制作 UIToolbar?

于 2012-05-19T21:29:05.257 回答
1

只有 UIViewController 不应该翻转 UIToolbar。现在 UIToolbar 也与 UIViewController 一起翻转。这就是我想将它附加到 rootviewcontroller 的原因。

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

  1. 使用导航控制器提供的工具栏。您不应该尝试直接访问该工具栏——使用 UIViewController 的-setToolbarItems:animated:方法为每个视图控制器设置您想要的项目。如果您为每个视图控制器提供相同的工具栏项集,您将获得您所追求的外观。在我的快速实验中,我确实注意到了轻微的闪烁,但这是为您的所有视图获取标准工具栏的一种非常快速且简单的方法。

  2. 创建您自己的容器控制器。随着 iOS 5 的引入,我们能够编写自己的容器控制器,即可以在自己内部托管其他视图控制器的视图控制器,就像 UINavigationController 和 UITabBarController 一样。因此,您可以轻松编写自己的容器并让它托管您的工具栏。听起来这就是您已经尝试做的事情,但您必须意识到您不会自动获得该功能。

于 2012-05-19T23:50:24.847 回答