RootViewController中的UIToolbar

时间:2012-05-19 20:30:08

标签: iphone uitoolbar

我的应用程序启动时需要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]; 

我不想要。我希望UIToolbar在将UIViewControllers附加到rootviewcontroller之后自动显示在UIViewController中。这样当我翻转UIViewController以更改为另一个UIViewController时。只有UIToolbar才能翻转UIToolbar。现在UIViewController也会翻转rootviewcontroller。这就是我想将它附加到UIToolbar in APPDelegate的原因。

那么如何添加rootviewcontroller文件并将其附加到{{1}}。

感谢您的帮助。

3 个答案:

答案 0 :(得分: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添加两个子视图。

答案 1 :(得分:1)

我不相信你说

toolbar = [UIToolbar new];

另外,你有没有用Google搜索过如何以编程方式制作UIToolbar?

答案 2 :(得分:1)

  

只有UIViewController不应该翻转UIToolbar.Right现在UIToolbar是   也可以用UIViewController翻转。所以这就是我想要的原因   将它附加到rootviewcontroller。

我可以想到两种方法:

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

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