0

语境子类UIToolbar和压倒一切的drawRect: - UIBarButtonItems不显示

我使用“initWithNavigationBarClass”的方法来初始化一个自定义工具栏一个UINavigationController,这里是我的Alloc地初始化的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)]; 
    } 

这里是在相关的viewController代码,我试图添加UIBarButtonItems

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这个工具,因为它们不显示向上时我尝试添加它们?

我认为这件事情与我压倒一切的drawRect

+0

我想我明白了这一点,我正在使用下面的代码:[self.navigationController.toolbar setItems:items]哪些不起作用。但是,如果我使用self.toolbarItems =它的工作项目。不知道为什么? – drc 2013-04-25 17:23:25

回答

0

我试图用自己的自定义UIToolbar,问题不是来自-(void)drawRect:(CGCrect)rect

我不知道我们是否尝试在UIToolbar上添加按钮,但是您应该尝试将它们添加到您的UIViewController类的-(void)viewDidAppear方法中。这样它对我有效。

+0

感谢您的答案danypata,请参阅我之前的评论我改为使用self.toolbarItems,而不是self.navigationController.toolbar setItems:item,并修复了它。任何想法为什么? – drc 2013-04-25 18:16:26

+0

所以基本上,Apple Docs指出导航控制器'从活动视图控制器的toolbarItems属性中获取它当前的一组项目。所以基本上设置toolbarItems的正确方法是通过UIViewController.toolbarItems属性。 – danypata 2013-04-26 06:57:06

+0

@我不相信这是正确的看到:http://stackoverflow.com/questions/16228275/uibutton-hidden-behind-uitoolbar – drc 2013-04-26 20:32:40