【问题标题】:iPhone toolbar for entire app整个应用程序的 iPhone 工具栏
【发布时间】:2014-01-20 19:52:00
【问题描述】:

我的应用基于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;
}

提前谢谢!

【问题讨论】:

  • 是没有显示工具栏,还是只显示按钮?

标签: iphone ios uitoolbar


【解决方案1】:

我们默认隐藏的工具栏。 toolbarItems 应该存储在相应的视图控制器中,而不是导航控制器中。

来自documentation:

显示工具栏
在 iOS 3.0 及更高版本中,导航控制器对象可以轻松地为每个屏幕提供自定义工具栏 导航界面。导航控制器对象现在管理一个 其视图层次结构中的可选工具栏。显示时,此工具栏 从 活动视图控制器。当活动视图控制器改变时, 导航控制器更新工具栏项以匹配新视图 控制器,在适当的时候将新项目设置为动画。

默认情况下导航工具栏是隐藏的,但您可以将其显示为 你的导航界面通过调用 setToolbarHidden:animated: 导航控制器对象的方法。如果不是你的全部观点 控制器支持工具栏项目,您的委托对象可以调用它 在后续推送期间切换工具栏可见性的方法 和弹出操作。

【讨论】:

  • 所以如果我有 5 个视图想要显示工具栏,我必须在所有 5 个视图中创建并插入 * 它们,知道所有按钮都相同并且具有相同的操作吗?跨度>
  • 是的。将它们复制到下一个视图控制器只是一行代码。
【解决方案2】:

你可以像这样保留工具栏项

ThemeDetailViewController *themeDetail = [[ThemeDetailViewController alloc] init];
[self.navigationController pushViewController:themeDetail animated:YES];
themeDetail.toolbarItems = self.parentViewController.toolbarItems;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多