Objective c 以编程方式在UIViewController的UINavigationBar中设置左右标签

Objective c 以编程方式在UIViewController的UINavigationBar中设置左右标签,objective-c,uiviewcontroller,uinavigationcontroller,uinavigationbar,xcode4.3,Objective C,Uiviewcontroller,Uinavigationcontroller,Uinavigationbar,Xcode4.3,我试图以编程方式在UIViewController实现中添加两个标签—一个在UINavigationBar的左侧,一个在右侧。但是,当我运行程序时,它不会显示。我有一个嵌入在UINavigationController中的UIViewController。我正在使用以下代码: - (void) setTheNavigationbarView{ CGFloat originX = self.navigationItem.titleView.bounds.origin.x; CGF

我试图以编程方式在UIViewController实现中添加两个标签—一个在UINavigationBar的左侧,一个在右侧。但是,当我运行程序时,它不会显示。我有一个嵌入在UINavigationController中的UIViewController。我正在使用以下代码:

- (void) setTheNavigationbarView{

    CGFloat originX = self.navigationItem.titleView.bounds.origin.x;
    CGFloat originY = self.navigationItem.titleView.bounds.origin.y;
    CGFloat sizeW = self.navigationItem.titleView.bounds.size.width;
    CGFloat sizeH = self.navigationItem.titleView.bounds.size.height;

    UIView * navigationbarView = [[UIView alloc] initWithFrame:CGRectMake(originX + 1, originY + 1, sizeW - 2, sizeH - 2)];
    navigationbarView.backgroundColor = [UIColor clearColor];


    UILabel *labelLeft = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, (sizeW - 2)/2, (sizeH - 2))] autorelease];
    labelLeft.backgroundColor = [UIColor clearColor];
    labelLeft.font = [UIFont boldSystemFontOfSize:16];
    labelLeft.adjustsFontSizeToFitWidth = NO;
    labelLeft.textAlignment = UITextAlignmentLeft;
    labelLeft.textColor = [UIColor blackColor];
    labelLeft.text = @"first line";
    labelLeft.highlightedTextColor = [UIColor blackColor];
    [navigationbarView addSubview:labelLeft];

    UILabel *labelRight = [[[UILabel alloc] initWithFrame:CGRectMake(((sizeW - 2)/2 + 1), 0, (sizeW - 2)/2, (sizeH - 2))] autorelease];
    labelRight.backgroundColor = [UIColor clearColor];
    labelRight.font = [UIFont boldSystemFontOfSize:16];
    labelRight.adjustsFontSizeToFitWidth = NO;
    labelRight.textAlignment = UITextAlignmentRight;
    labelRight.textColor = [UIColor blackColor];
    labelRight.text = @"second line";
    labelRight.highlightedTextColor = [UIColor blackColor];
    [navigationbarView addSubview:labelRight];

    // set the view as navigationba title view
    self.navigationItem.titleView = navigationbarView;
}

我将感谢任何帮助。谢谢。

我测试了您的代码及其工作情况,我只会检查您的框架是否大于Navigaiton控制器的每个尺寸。

谢谢@edzio27的回答。这确实帮助了我,尤其是第二个建议。self.navigationItem.titleView.bounds的大小为w=0和h=0。我用self.navigationController.navigationBar.frame替换self.navigationItem.titleView.bounds,更改了方法开头的四行。成功了。请编辑您的答案,以便我将其标记为正确。再次感谢。