0

我在不使用 xib 文件的情况下以编程方式创建 NavigationBar。并创建一个带有文本“left”的左按钮,添加到导航栏,并将标题设置为“Demo”。

代码 :

-(void) createNavBar:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options
{

    self.navBarController = [[[UINavigationController alloc] init] autorelease];
    navBar = [navBarController navigationBar];
    navBarController.navigationBar.bounds = CGRectMake(0, 0, 320, navBarHeight);
    [navBarController.navigationBar  setBackgroundImage:[[UIImage imageNamed:@"www/images/ios_hd_bg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 0, 2, 0)]
     forBarMetrics:UIBarMetricsDefault];



    [navBarController view];

    navBarController.navigationItem.title = @"title";

    [navBarController.view setFrame:navBarController.navigationBar.bounds];

    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button = [self renderNavBarTextBtn:@"left" withButton:button direction:@"left"];
    [navBar addSubview:button];

    [[[self webView] superview] addSubview: navBarController.view];
}

但是,程序可以成功设置导航栏背景图片,显示左键,但无法设置标题。这么奇怪?

补充:我使用 cordova 框架来调用 . 并且该接口只是提供给cordova调用。感谢下面的答案,但我仍然无法解决我的问题。

截图:(注:显示左键不显示标题)

在此处输入图像描述

4

5 回答 5

4
 UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:@"left" style:UIBarButtonItemStyleDone target:nil action:nil];
    self.navigationItem.backBarButtonItem = _backButton;

    self.navigationItem.title=@"Demo";
    [_backButton release], 
    [_backButton = nil];
于 2012-09-20T12:25:37.677 回答
1

请试试这个:

self.navigationItem.title=@"Your Title";
于 2012-09-20T12:29:08.750 回答
0

您可以设置视图标题,在导航栏上显示标题

self.title=@"My Navigation View";  

或者您可以在要显示的视图中设置 navigationBarTitle

self.navigationItem.title=@"My Navigation";
于 2012-09-20T12:50:27.813 回答
0

navBar.title =@"Your title";
于 2012-09-20T12:14:38.147 回答
0

试试这个代码片段:

//nativeControls.hideLeftNavButton();

    nativeControls.setupRightNavButton(
        "About",
        "",
        "onRightNavButton"
    );

    nativeControls.showNavBar();

否则请参阅此博客:http: //zsprawl.com/iOS/2012/05/navigation-bar-with-nativecontrols-in-cordova/

于 2012-09-20T13:09:52.680 回答