0

環境

「initWithNavigationBarClass」メソッドを使用して、カスタム ツールバーで UINavigationController を初期化しています。これは、UINavigationController を初期化する行です。

navigationController = [[UINavigationController alloc] initWithNavigationBarClass:nil toolbarClass:[QuestionToolbar class]];

クラス「QuestionToolbar」です。UIToolbar をサブクラス化し、drawrect をオーバーライドします。drawRect メソッドは次のとおりです。

    - (void)drawRect:(CGRect)rect
    {
      [super drawRect:rect];
      UIImage *backgroundImage = [UIImage imageNamed:@"44px_background_red.png"];
      [backgroundImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
    }

これは、UIBarButtonItems を追加しようとする viewController の関連コードです。

UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *beginItem = [[UIBarButtonItem alloc] initWithTitle:@"Begin Quiz" style:UIBarButtonItemStylePlain target:self action:@selector(beginAction:)];

[beginItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];

NSArray *items = [NSArray arrayWithObjects:spacer, beginItem, spacer, nil];
[self.navigationController.toolbar setItems:items];

[self.navigationController setToolbarHidden:NO];

問題

UIBarButtonItems を追加しようとしても表示されないため、このツールバーに UIBarButtonItems を追加するにはどうすればよいですか?

オーバーライドする drawRect と関係があると思います

4

1 に答える 1