【问题标题】:Replacing UITabBar with UIToolbar programmatically以编程方式用 UIToolbar 替换 UITabBar
【发布时间】:2012-12-02 20:39:43
【问题描述】:

我正在尝试编写一个选项卡式应用程序,其中每个选项卡都是一个导航控制器。这个标签栏出现在导航控制器中的每个视图上,因为它是在每个视图上推断出来的。

我想用带有几个按钮的工具栏替换详细视图上的标签栏。

我在该详细视图的 viewDidLoad: 方法中尝试了以下代码

self.navigationController.toolbarHidden = NO;
self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;

UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept"
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self
                                                              action:nil];

UIBarButtonItem *decline = [[UIBarButtonItem alloc] initWithTitle:@"Decline"
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self
                                                               action:nil];
NSArray *items = [NSArray arrayWithObjects:accept, decline, nil];
[self.navigationController.toolbar setItems:items animated:YES];

// code suggested
[self.view addSubview:self.navigationController.toolbar];

它仍然没有出现。虽然现在隐藏选项卡栏以在显示详细视图的视图中添加以下行:-

theDetailTableViewController.hidesBottomBarWhenPushed = YES;

我错过了什么吗?

【问题讨论】:

    标签: objective-c ios xcode ios6


    【解决方案1】:

    我通常在 viewWillAppear 或 viewDidAppear 方法中设置 toolbarHidden = YES 或 NO,如果适用的话。我不确定这是否是它不适合您的原因,但无论如何,当您返回呈现视图时,您需要解决。

    如果你不解决它,当你返回时工具栏仍然可见。

    【讨论】:

    • 干杯朋友。那行得通。视图出现后,我使用 viewDidAppear 显示工具栏。然后我使用 viewWillDisappear 在它消失时将其隐藏。
    【解决方案2】:

    无论您从何处推送您的 detailViewController,执行此操作以在详细视图中隐藏 Tab Bar:

    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    detailViewController.hidesBottomBarWhenPushed = YES;
    [self.navigationController detailViewController animated:YES];
    

    在您的详细视图中,只需将工具栏作为子视图添加到详细视图。

    【讨论】:

    • 感谢您的帮助@calvinBhai 我已经根据您的建议更新了我的问题。标签栏消失了,但工具栏仍然没有出现。
    猜你喜欢
    • 1970-01-01
    • 2018-05-13
    • 2010-11-07
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多