Кнопки панели навигации не отображаются на реальном устройстве - PullRequest
2 голосов
/ 28 августа 2011

У меня есть панель навигации с тремя кнопками справа (стрелки для навигации + кнопка обмена). На симуляторе Iphone я их хорошо вижу, и они работают отлично. Когда я установил приложение на реальное устройство Iphone 4, кнопки вообще не отображаются !!! (мой симулятор IPhone 3, если это метр). Мой код:

UIToolbar *tools = [[UIToolbar alloc]
                    initWithFrame:CGRectMake(0, 0, 70.0f,     44.01f)]; // 44.01 shifts it up 1px for some reason
tools.clearsContextBeforeDrawing = NO;
tools.clipsToBounds = NO;
tools.tintColor = [UIColor colorWithWhite:0.305f alpha:0.0f]; // closest I could get by eye to black, translucent style.
// anyone know how to get it perfect?
tools.barStyle = -1; // clear background


NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:3];

// Create a standard refresh button.
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"share.png"] style:UIBarButtonItemStylePlain target:self action:@selector(shareClicked)];
//initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
[buttons addObject:bi];
[bi release];

// Create a spacer.
bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scroll left.png"] style:UIBarButtonItemStylePlain target:self action:@selector(upClicked)];
//bi.width = 12.0f;
[buttons addObject:bi];
[bi release];

// Add profile button.
bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scroll right.png"] style:UIBarButtonItemStylePlain target:self action:@selector(downClicked)];
//bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];

// Add buttons to toolbar and toolbar to nav bar.
[tools setItems:buttons animated:NO];
[buttons release];
UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:tools];
[tools release];
self.navigationItem.rightBarButtonItem = twoButtons;
[twoButtons release];

Ответы [ 3 ]

5 голосов
/ 21 января 2012

У меня была похожая проблема.

В моем случае файл .png был удален из проекта и из рабочего каталога проекта - по некоторым причинам. Следовательно, он больше не был включен в ресурсы комплекта копирования.

Странно, хотя, видимо, это все еще было на симуляторе. В моем случае это было все еще на устройстве отладки. Но при создании боулдера для раздачи ad-hoc его не было. В результате полная кнопка (элемент панели кнопок на панели навигации) не появилась. Пользователи не смогли вызвать действие, связанное с ним.

Сначала я стер приложение с симулятора. Я пробовал и то и другое, стирая его из графического интерфейса симулятора и из файловой системы / Пользователи // Библиотека / Поддержка приложений / iPhone Simulator / 5.0 / Приложения / (идентификатор приложения) / .... В обоих случаях при запуске приложения на simulatore неиспользуемый файл .png и ряд других файлов были преднамеренно удалены из моего проекта xcode.

Однако окончательным решением было снова включить файл png в проект xcode и назначить его всем соответствующим целям. В моем случае я все равно собирался изменить графику, поэтому я включил новый файл вместо старого. Но я уверен, что эта деталь не имеет большого значения.

Краткая версия: 1. Если ваш png-файл все еще является частью проекта, удалите его. Удалите ist из папки проекта, просто чтобы сохранить. 2. Повторно включите файл png в проект. 3. Создайте свою сборку и попробуйте ее на пустом устройстве.

1 голос
/ 29 июля 2015

Также столкнулся с этой проблемой, когда XCode Simulator показывал пользовательскую кнопку правой кнопки навигации, но устройство не показывало. Ошибка была слабым свойством IBOutlet для пользовательской кнопки. Проверьте свой IBOutlet @property. В моем случае исправление просто меняло IBOutlet на: @property (nonatomic, retain).

0 голосов
/ 06 июня 2016

В моем случае я как-то удалил ссылку на свое собственное изображение.Повторный выбор имени из списка изображений устранил проблему.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...