2

遇到障碍,希望在这里有所了解。

概述: 通用应用程序。iPhone部分效果很好。iPad 部分有一个拆分视图控制器。主视图是一个表格视图(左侧),用户在其中选择一行并显示其详细信息(右侧)。很标准的东西。

我正在使用 Xcode 4.4.1 版,我的项目正在使用 Core Data、Storyboards 和 ARC。

DetailViewController: 在详细信息上是一个按钮,该按钮使用自定义视图按日期显示用户注释的另一个表视图(在详细信息内)。每个笔记都可以有一个与之关联的图像。如果笔记有图像,则会显示一个带有照片图标的按钮。

到目前为止的示例屏幕截图:

示例截图 1

MWPhotoBrowser: 当按下照片图标的按钮时,我调用 MWPhotoBrowser(一个以标准方式显示图像的精彩库)来显示图像。单击显示一个选定的图像,双击显示当前表格上的所有图像,首先查看所选图像。图像全屏显示。

要显示照片浏览器,我使用以下代码:

// Create the browser view.
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];

// Set browser options.
browser.wantsFullScreenLayout = YES;
browser.displayActionButton = YES;
[browser setInitialPageIndex:self.buttonRow];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser];

[self presentModalViewController:navController animated:YES];

navController 允许我包含一个带有“完成”按钮的导航控制器,该按钮调用 doneButtonPressed。

问题: 在我按下“完成”按钮之前,上述所有方法都运行良好。全屏照片浏览器正确关闭。不幸的是,用户按下照片图标按钮的右侧的表格视图现在消失了(黑色)。我认为在照片浏览器被模态关闭后,NotesViewController(右侧)会保留在那里。在拆分视图中调用模型视图控制器是否会导致其他视图控制器被删除?

显示问题的示例屏幕截图:

在此处输入图像描述

详细视图控制器(右侧)上的堆栈应该是 DetailViewController > NotesViewController > 然后调用 MWPhotoBrowser 模态。关闭照片浏览器后,我的 self.navigationController.viewControllers.count 等于 1,我希望它是 2。

这是关闭 MWPhotoBrowser 的代码:

- (void)doneButtonPressed:(id)sender {

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

    [self dismissViewControllerAnimated:YES completion:nil];
}
.
.
.

希望有人可以帮助我解决这个问题。

与往常一样,非常感谢任何帮助。谢谢!

4

1 回答 1

0

我在 NoteViewController 中解决了我的问题(MWPhotoBrowser 被关闭后该区域变黑)。

在 viewWillAppear 中,我将 tableview 设置为 nil(以防止单元格过度包装)并重新加载我的表格数据。

self.tableView = nil;

[self.tableView reloadData];

这适用于 iPhone,并且当没有从 iPad 上的 MWPhotoBrowser 的全屏显示返回时。由于某种我不明白的原因,上面的代码导致了这个问题。我添加了额外的逻辑来检查我是否从全屏显示返回,现在一切都很好。时间允许的时候我会多研究。

于 2012-08-29T15:50:48.663 回答