按钮没有显示在NavigationController的工具栏上

时间:2014-11-10 22:25:34

标签: ios uinavigationcontroller

我的应用的这一部分有一个带有4个不同标签的标签栏。每个选项卡都是一个表格视图,显示工具栏上的不同按钮。我在视图中添加了一个自定义工具栏,一切正常。但是,出于设计原因,我们正在删除Tab栏;它将是一个菜单屏幕。由于标签栏将不再位于屏幕的底部,我想我现在可以使用导航控制器的工具栏。我的问题是按钮永远不会显示在工具栏中!

这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.allowsMultipleSelection = YES;

    // Configure the navigation item with custom buttons
    UIBarButtonItem* flexibleSpace = [[UIBarButtonItem alloc]
                                      initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                      target:nil
                                      action:nil];
    UIBarButtonItem* btnClockIn = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Clock In"
                                   style:UIBarButtonItemStylePlain
                                   target:self
                                   action:@selector(clockRespondersIn)];
    UIBarButtonItem* btnClockOut = [[UIBarButtonItem alloc]
                                    initWithTitle:@"Clock Out"
                                    style:UIBarButtonItemStylePlain
                                    target:self
                                    action:@selector(clockRespondersOut)];
    UIBarButtonItem* btnDismiss = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Dismiss"
                                   style:UIBarButtonItemStylePlain
                                   target:self
                                   action:@selector(dismissResponders)];
    UIBarButtonItem* btnEndJob = [[UIBarButtonItem alloc]
                                  initWithTitle:@"End Job"
                                  style:UIBarButtonItemStylePlain
                                  target:self
                                  action:@selector(endJob)];
    self.navigationController.toolbarHidden = NO;
    self.toolbarItems = @[btnClockOut,flexibleSpace,btnDismiss,flexibleSpace,btnEndJob];
}

我尝试将这些语句移动到viewWillAppear中,但它没有帮助。我不明白我做错了什么。目前工具栏显示,但没有按钮。我没有删除自定义工具栏,但我不再为其分配按钮。但是,如果我指定按钮,它们看起来应该在那里。

2 个答案:

答案 0 :(得分:1)

根据UINavigationController的使用方式,self.navigationController中的viewDidLoad可能为零。在创建视图时,尝试将viewDidLoad中的断点设置为具有有效导航控制器的断点。您可能需要将其移至viewWillAppear

答案 1 :(得分:0)

由于@rdelmar在测试时说代码有效,我决定重新开始使用一个新的视图控制器,它根本没有链接到Tab栏控制器。它马上工作了。我无法找到有关其原因的任何信息,但导航控制器和标签栏中的工具栏似乎无法相处。