Итак, у меня есть контроллер табличного представления, который показывает изображения, а затем, когда вы выбираете ячейку, он открывает UIViewController с представлением изображения и панелью навигации с кнопками для возврата или сохранения изображения. Проблема в том, что у меня появляется вторая строка заголовка. Кажется, я не могу его удалить, я не могу изменить текст, и, честно говоря, я не могу найти, откуда он идет. Когда я выбираю его, он выбирает панель навигации, но если я удаляю или скрываю панель навигации, она скрывает панель с кнопками, и эта полоса «Заголовок» остается.
Вот как выглядит бег в симуляторе:
Есть идеи, как мне избавиться от этой штуки или хотя бы изменить ее название? Единственное, что, кажется, меняет его, - это когда я загружаю очень маленькое изображение, оно расширяется, чтобы заполнить оставшееся пространство просмотра следующим образом:
Я удалил 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;
}