【问题标题】:can I add a UIBarButtonItem completely IB free?我可以完全免费添加一个 UIBarButtonItem IB 吗?
【发布时间】:2011-07-18 21:27:06
【问题描述】:

我在视图控制器中以编程方式创建了导航栏和标签。现在我想添加一个“完成”按钮,但似乎找不到不使用 IB 的方法....有什么方法可以做到吗?

这是我的视图控制器的 viewDidLoad:

//Adding navBar programmatically 
CGFloat width = self.view.frame.size.width;
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,width,52)];
navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:navBar];

//Adding label to navBar programmatically 
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10,2,width-20,14)];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
label.text = @"TITLE";
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:22];
label.shadowOffset = CGSizeMake(1,1);
label.textColor = [UIColor whiteColor];
label.textAlignment = UITextAlignmentCenter;
[navBar addSubview:label];

//Adding back button to navBar programmatically 
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(dismissView:)];
self.navigationItem.leftBarButtonItem = rightButton;   

最后一部分显然不起作用...

感谢您的帮助!

【问题讨论】:

标签: iphone objective-c xcode uinavigationbar uinavigationitem


【解决方案1】:

你为什么不改用UIToolBar

要将按钮添加到UINavigationBar,您需要创建一个UINavigationItem。如果您将UINavigationBar 用作UINavigationController 的一部分(通常情况下),这是自动完成的,作为独立视图,您必须自己执行此操作。

UINavigationItem *item = [[[UINavigationItem alloc] initWithTitle:@""] autorelease];
item.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissView:)] autorelease];
[navBar setItems:[NSArray arrayWithObject:item] animated:NO];

【讨论】:

  • 谢谢,有帮助!同意工具栏 - 那么为什么 UINavigationBar 在那里呢?如果我们假设只将它与 uinavcontroller 一起使用,它会自动添加它怎么办......?再次感谢!
【解决方案2】:

navigationItem 仅在您在导航控制器中推送视图控制器时使用

在你的情况下你需要使用

-pushNavigationItem:动画:

在 UINavigationBar 上

查看文档了解更多详情:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UINavigationBar_Class/Reference/UINavigationBar.html

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2016-07-03
    • 1970-01-01
    • 2011-01-31
    • 2011-06-11
    相关资源
    最近更新 更多