我的应用基于navigationController
。因此,我为某些视图设置了工具栏,而对于其他人,我没有调用setToolbarHidden:NO
或YES
。
第一个问题,这是viewWillAppear
方法吗?
然后在我的appDelegate
中,我在工具栏上放了一个项目,但没有显示。
有人可以告诉我如何在这里使用委托协议,以便每个视图知道在按下某个项目时该怎么做??
我的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//create itemViewcontroller
EventosViewController *itemsViewController = [[EventosViewController alloc] init];
//create UINavigationcontroller, stack only contains itemviewcontroller
navController=[[UINavigationController alloc] initWithRootViewController:itemsViewController];
//navController will retain itemviewcontroller, we can release it
[itemsViewController release];
UIBarButtonItem *systemItem1 = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(pressButton1:)];
//Use this to put space in between your toolbox buttons
UIBarButtonItem *flexItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
//Add buttons to the array
NSArray *items = [NSArray arrayWithObjects: systemItem1, flexItem,nil];
//release buttons
[systemItem1 release];
[flexItem release];
//add array of buttons to toolbar
[navController.toolbar setItems:items animated:NO];
//set navController's view in window hierarchy
[[self window] setRootViewController:navController];
[navController release];
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
return YES;
}
提前thx!
答案 0 :(得分:0)
我们默认隐藏工具栏。 toolbarItems
应存储在相应的视图控制器中,而不是导航控制器中。
显示工具栏
在iOS 3.0及更高版本中,导航控制器对象可以轻松地为每个屏幕提供自定义工具栏 导航界面。导航控制器对象现在管理一个 视图层次结构中的可选工具栏。显示时,此工具栏 从的toolbarItems属性获取其当前项集 主动视图控制器。当活动视图控制器更改时, 导航控制器更新工具栏项以匹配新视图 控制器,在适当的时候将新项目设置为动态。默认情况下隐藏导航工具栏,但您可以显示它 你的导航界面通过调用setToolbarHidden:animated: 导航控制器对象的方法。如果不是你所有的观点 控制器支持工具栏项,您的委托对象可以调用它 在后续推送期间切换工具栏可见性的方法 和流行操作。
答案 1 :(得分:0)
你可以像这样保留工具栏吗
ThemeDetailViewController *themeDetail = [[ThemeDetailViewController alloc] init];
[self.navigationController pushViewController:themeDetail animated:YES];
themeDetail.toolbarItems = self.parentViewController.toolbarItems;