【问题标题】:UIToolbar Items are not showing in popoverUIToolbar 项目未显示在弹出窗口中
【发布时间】:2012-04-17 10:41:43
【问题描述】:

我试图在我的 iPad 应用程序的弹出视图中显示自定义表格视图。这工作正常。我想在工具栏上添加按钮(在表格视图的底部)。工具栏显示为空。有什么建议吗?

请注意,当用户触摸主视图控制器中的按钮时会触发以下代码。

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.customTableViewController];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item 1" style:UIBarButtonItemStylePlain target:nil action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item 2" style:UIBarButtonItemStylePlain target:nil action:nil];

[navigationController setToolbarHidden:NO];
navigationController.navigationBar.topItem.title = @"Some Title";

NSArray *array = [[NSArray alloc] initWithObjects:item1, item2, nil];
[navigationController setToolbarItems:array];

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
self.popoverController = popover;
popoverController.delegate = self;

[popoverController presentPopoverFromRect:[sender bounds] inView:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

【问题讨论】:

  • 我遇到了类似的问题,表格视图在弹出窗口中显示正常,但下面的按钮不可见。如果我发现了什么,我会告诉你的。
  • 我在这里找到了答案:stackoverflow.com/a/3169945/6835351 看来您只需要显示工具栏,因为它默认为弹出框隐藏。

标签: ios uinavigationcontroller uipopovercontroller uitoolbar


【解决方案1】:

我遇到了类似的问题,表格视图在弹出窗口中显示正常,但下面的按钮不可见。如果我想出什么办法,我会告诉你的。

编辑:我的问题是我正在重新调整弹出框的大小,并且按钮被推出了视图。我通过更改自动调整大小以锁定相对于框架底部的位置来解决此问题。为此,请在界面生成器中查看您的 xib,转到右上角的标尺选项卡并使用 Autosizing GUI。对我来说,这意味着在 GUI 上只选择了底部锚点。

【讨论】:

    【解决方案2】:

    在 ipad 应用上,您必须将工具栏项设置为“topViewController”(是的,这违反直觉)。

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:catView];
    UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item 1" style:UIBarButtonItemStylePlain target:nil action:nil];
    UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item 2" style:UIBarButtonItemStylePlain target:nil action:nil];
    [nav setToolbarHidden:NO animated:YES];
    // WRONG: [nav setToolbarItems:[NSArray arrayWithObjects:addButton, nil]];
    // CORRECT (for ipad apps):
    [nav.topViewController setToolbarItems:[NSArray arrayWithObjects:item1, item2, nil] animated:NO];
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:nav];
    

    见: http://www.kevatron.co.uk/tag/uipopovercontroller/

    【讨论】:

    • 我遇到了与上述相同的问题,除此之外我尝试了所有方法。很好的发现,谢谢!
    猜你喜欢
    • 2023-02-21
    • 1970-01-01
    • 2010-11-24
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    相关资源
    最近更新 更多