UIBarButton 未在 UINavigationBar 中显示

Posted

技术标签:

【中文标题】UIBarButton 未在 UINavigationBar 中显示【英文标题】:UIBarButton not showing in UINavigationBar 【发布时间】:2013-05-30 16:52:26 【问题描述】:

我的UIBarButtonItem 没有显示在我的UINavigationBar 中,需要帮助。

我正在尝试在我的第三个视图中添加UINavigationBar。由于我不太确定UINavigationController 是否有效,我决定手动初始化UINavigationBar 及其UINavigationItem initwithTitle。该代码有效,但我的问题是添加 UIBarButtonItem,因为它不会显示在 UINavigationBar 中。

- (void)viewDidLoad

    [super viewDidLoad];

    UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];

    UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
    [navigationBar pushNavigationItem:navigationItem animated:NO];

    UIBarButtonItem *button = [[UIBarButtonItem alloc]
                               initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
                               target:self
                               action:@selector(showPI:)];
    self.navigationItem.rightBarButtonItem = button;

    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 44.0, self.view.frame.size.width, self.view.frame.size.height - navigationBar.frame.size.height) style:UITableViewStylePlain];
    self.tableView = tableView;

    [self.view addSubview:tableView];
    [self.view addSubview:navigationBar];
    [self showCurrencies];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;

我不确定缺少什么。

【问题讨论】:

为什么您认为您的 nag 控制器不起作用? 我之前设法使用UINavigationController 更改了我的代码并崩溃了。所以我重做它并继续使用上面显示的方法。 您能否发布一些有关您的 nag 控制器和崩溃的详细信息?谢谢。 顺便说一下,只是为了澄清。您将在 AppDelegateapplication: didFinishLaunchingWithOptions 中初始化 UINavigationController 【参考方案1】:

在您的情况下,您正在创建自己的导航栏。尽量不要分配 init 你的 navigationItem,而是使用

UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
UINavigationItem *item = [navigationBar.items lastObject]; 

然后将你创建的 barbuttonItem 设置为 item 的 rightBarButtonItem,

item.rightBarButtonItem = button; 

它对我有用。

【讨论】:

以上是关于UIBarButton 未在 UINavigationBar 中显示的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButton上的点击事件怎么做

UIBarButton 不执行动作

UIBarButton 背景图片显示问题

UIBarButton 没有改变

iOS:UIBarButton 正确大小

UIbarbutton 蓝色而不是背景图片