Две строки заголовка на UIViewController (часть UITableViewController)

Итак, у меня есть контроллер табличного представления, который показывает изображения, а затем, когда вы выбираете ячейку, он открывает UIViewController с представлением изображения и панелью навигации с кнопками для возврата или сохранения изображения. Проблема в том, что у меня появляется вторая строка заголовка. Кажется, я не могу его удалить, я не могу изменить текст, и, честно говоря, я не могу найти, откуда он идет. Когда я выбираю его, он выбирает панель навигации, но если я удаляю или скрываю панель навигации, она скрывает панель с кнопками, и эта полоса «Заголовок» остается.

Вот как выглядит бег в симуляторе:

titleBarIssue

Есть идеи, как мне избавиться от этой штуки или хотя бы изменить ее название? Единственное, что, кажется, меняет его, - это когда я загружаю очень маленькое изображение, оно расширяется, чтобы заполнить оставшееся пространство просмотра следующим образом:

largeTitleBar

Я удалил UIImageView и даже представление в пере, и оно все еще там. Я даже сам перо удалил и ничего не меняется. Я могу только догадываться, что супервизор каким-то образом его загружает, но я не могу найти там ничего, что могло бы его вызвать. Если бы он исходил из метода ячейки, у него был бы заголовок изображения, а не просто «заголовок».

Вот код из Superview (который является контроллером табличного представления), который инициализирует экран с проблемой:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
NSString *title = [completePicturesList objectAtIndex:row];
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *imagePath = [NSString stringWithFormat:@"%@/%@", docDirectory, title];

UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];

GCDetailViewController *childController = [[GCDetailViewController alloc] init];
childController.mainImage = image;
[self.navigationController pushViewController:childController animated:YES];

}

и вот viewWillAppear UIViewController, который показывает дубликат:

- (void)viewWillAppear:(BOOL)animated { 
[super viewWillAppear:animated];

mainImageDisplay.image = mainImage;

UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Save"
                                                               style:UIBarButtonItemStyleBordered target:self action:@selector(saveImageToPhotoAlbum)];
self.navigationItem.rightBarButtonItem = editButton;
NSString *titleText = [NSString stringWithFormat:@"Image Review"];
self.title = titleText;

Единственные другие методы в этом классе предназначены для сохранения фотографии. Кроме того, для этого тоже нет пера, поэтому его там нет. Что касается self.title, хорошо, если я изменю это, он изменит текст, который говорит «Обзор изображения», а НЕ «заголовок» под ним. Если я попытаюсь скрыть панель навигации, она скроет панель просмотра изображения, а строка заголовка останется.

Просто для удовольствия вот метод cellForRow, чтобы узнать, не что-то там есть:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"newCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

NSUInteger row = [indexPath row];
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *cellTitle = [completePicturesList objectAtIndex:row];
NSString *imagePath = [NSString stringWithFormat:@"%@/%@", docDirectory, cellTitle];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];

cell.textLabel.text = cellTitle;
cell.imageView.image = image;

return cell;

}


person Drew Dutton    schedule 11.10.2012    source источник
comment
Вы строите это из пера? Похоже, он присутствует в файле пера, но не связан ни с чем в вашем коде.   -  person Sid    schedule 12.10.2012
comment
Я тоже так подумал, и я использовал перо в раскадровке и подключил его к классу UIViewController, но панель навигации в пере - это верхняя панель, нижняя панель нигде не видна на пере.   -  person Drew Dutton    schedule 12.10.2012
comment
Изменить: я удалил перо, прикрепленное к контроллеру представления, у которого есть проблема, и он все еще там.   -  person Drew Dutton    schedule 12.10.2012
comment
Как вы настраиваете этот контроллер представления? Является ли он подклассом другого UIViewController, который может добавлять строку заголовка? Не могли бы вы опубликовать объявление интерфейса в файле заголовка? Можно ли также разместить код из методов viewDidLoad и init в файле реализации? Эта проблема не выглядит такой уж плохой. За исключением предоставления доступа к вашему проекту (чего, конечно, я не ожидаю), лучшее, что вы можете сделать, это предоставить как можно больше информации и кода :)   -  person Sid    schedule 12.10.2012
comment
Контроллер, у которого возникла проблема, не является подклассом ни от чего, кроме UIViewController. Я полностью удалил перо, которое назначил ему, из раскадровки. Я разместил didselectrow из супервизора (UITableViewController) и viewDidAppear из UIViewController, который показывает обе полосы.   -  person Drew Dutton    schedule 13.10.2012
comment
Хм, странно. Хорошо, это глупо, но я где-то читал о кэшируемых перьях, поэтому попробуйте очистить свой проект и перестроить, чтобы увидеть, изменится ли это что-нибудь. Между тем, вы сейчас в сети, чтобы мы могли перенести это обсуждение в чат?   -  person Sid    schedule 13.10.2012
comment
Я, какой формат ты предпочитаешь? Кстати, чистка и восстановление не сработали.   -  person Drew Dutton    schedule 13.10.2012
comment
Что ж, вы не можете общаться в чате с представителем 11. Я проголосовал за два ваших вопроса, так что вы должны поговорить в чате. Однако, похоже, вы не в сети. Я буду онлайн в 22:00 по тихоокеанскому времени сегодня вечером. Тогда давайте решим эту проблему :)   -  person Sid    schedule 13.10.2012
comment
Я должен быть на работе завтра в 8, а я на восточном побережье, так что я не встану. Спасибо большое за предложение, хотя, чувак. Я пробовал еще несколько вещей, и единственное, что я думаю, что могу приступить к работе (и я бы не назвал это работающим), это то, что если я сделаю панель навигации полупрозрачной черной, она скроет эту уродливую строку заголовка за собой. Это не изящно, и я не планирую, чтобы он был постоянным, но, возможно, это может быть ключом к разгадке.   -  person Drew Dutton    schedule 13.10.2012


Ответы (1)


Прошу извинить меня, если я не могу ответить на свой вопрос, но я нашел решение.

Строка заголовка произошла от старого пера. Я сделал это в раскадровке, добавил полосу, затем передумал, как я хочу подойти к ней, и удалил ее.

По какой-то причине, когда я перезагружал приложение как на симуляторе, так и на моем телефоне, оно не перезаписывало старый наконечник, который изначально вызывал эту проблему (даже если он был удален из xCode). Я просто удалил приложение с телефона и симулятора, перезагрузил его, и строка заголовка исчезла.

person Drew Dutton    schedule 14.10.2012