Элемент кнопки правой панели навигации не отображается

- (void)setRightNavigationBarViewForUser {
    UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
                               initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                               target:nil action:nil];
    spacer.width = 760;
    NSString *title = [VimondStore sessionManager].userName;

    UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 144, 44)];
    tempView.backgroundColor = [UIColor clearColor];
    UIImageView *tempImageView = [[UIImageView alloc] initWithFrame:CGRectMake(4, 0, 44, 44)];
    tempImageView.image = [UIImage imageNamed:@"user.png"];

    UILabel *tempLabel = [[UILabel alloc] initWithFrame:CGRectMake(44, 0, 80, 44)];
    tempLabel.backgroundColor = [UIColor clearColor];
    tempLabel.text = title;
    tempLabel.font = [UIFont boldSystemFontOfSize:14.0];
    tempLabel.textColor = [UIColor whiteColor];
    tempLabel.textAlignment = NSTextAlignmentLeft;
    tempLabel.adjustsFontSizeToFitWidth = YES;
    tempLabel.minimumScaleFactor = 0.8;
    [tempView addSubview:tempImageView];
    [tempView addSubview:tempLabel];
    UIBarButtonItem *userView = [[UIBarButtonItem alloc]initWithCustomView:tempView];
    NSArray *items = @[spacer ,userView];
    self.navigationTableViewController.navigationItem.rightBarButtonItems = items;
}

- (void)navigateToHome {
    [self setRightNavigationBarViewForUser];
    self.loginViewController = nil;
    [self showCenterPanelAnimated:YES];
    [self setLeftBarButtonForDrawerTitle];
    NSAssert([self.centreViewController isKindOfClass:[GGBaseViewController class]], @"Must be of GGBaseViewController class");
    [GenreNavigator navigateToRoot:(GGBaseViewController*)self.centreViewController completionHandler:nil];
}

Мой код приведен выше: проблема, с которой я сталкиваюсь, заключается в том, что элементы кнопок правой панели навигации не видны в первый раз, когда я перехожу к дому. Когда я перехожу на другую страницу и возвращаюсь, она становится видимой. Первый метод используется для создания элементов кнопок правой панели навигации.

1 ответ

Из Apple doc на rightBarButtonItems вы можете увидеть, что наиболее вероятно, что ваш пользовательский вид слишком широк и ваша кнопка не отображается, потому что она не подходит. Попробуйте сделать его уже и посмотреть, появится ли он?

Обсуждение Этот массив может содержать 0 или более элементов кнопок панели для отображения в правой части панели навигации. Элементы отображаются справа налево в том же порядке, что и в массиве. Таким образом, первый элемент в массиве является самым правым элементом, а остальные элементы добавляются слева от предыдущего элемента.

Если недостаточно места для отображения всех элементов в массиве, элементы, которые будут перекрывать представление заголовка (если оно есть) или кнопки в левой части панели, не отображаются.

Другие вопросы по тегам