UIViewController上的两个标题栏(UITableViewController的子视图)

时间:2012-10-11 21:39:07

标签: iphone ios uiviewcontroller

所以我有一个显示图片的表格视图控制器,然后当你选择一个单元格时,它会打开一个带有图像视图的UIViewController和一个带有按钮的导航栏,可以返回或保存图像。问题是我得到了第二个标题栏。我似乎无法删除它,我无法更改文本,说实话我似乎无法找到它来自哪里。当我选择它时,它会选择导航栏,但如果我删除或隐藏导航栏,它会用按钮隐藏栏,并保留此“标题”栏。

以下是在模拟器中运行的内容:

titleBarIssue

关于如何摆脱这件事或至少改变它的标题的任何想法?唯一似乎改变它的是当我加载一个非常小的图像时,它会扩展以填充剩余的视图空间,如下所示:

largeTitleBar

我删除了UIImageView甚至是nib中的视图,它仍然存在。我甚至删除了笔尖本身并没有任何改变。我只能猜测superview以某种方式加载它,但我找不到任何可能导致它的东西。如果它来自单元格方法,它将具有图像的标题而不仅仅是“标题”。

以下是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];

}

这里是显示副本的UIViewController的viewWillAppear:

- (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,如果我改变它,它改变了“Image Review”的文本,而不是它下面的“标题”。如果我试图隐藏导航栏,它会隐藏图像查看栏并保留标题栏。

只是为了好玩,这里是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;

}

1 个答案:

答案 0 :(得分:1)

如果不能回答我自己的问题,请原谅我,但我确实找到了解决方案。

标题栏来自旧笔尖。我在故事板中创建了它,添加了条形图,然后改变了我的想法,我想要接近它并将其删除。

无论出于何种原因,当我在模拟器和手机上重新加载应用程序时,它都没有覆盖最初导致此问题的旧笔尖(即使它已从xCode中删除)。我只是从手机和模拟器中删除了应用程序并重新加载它,标题栏就消失了。