在分割视图中以模态方式关闭MWPhotoBrowser视图控制器

时间:2012-08-28 18:53:27

标签: xcode uisplitviewcontroller modalviewcontroller ipad

陷入困境,并希望在这里有所了解。

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

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

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

到目前为止的截图示例:

Example screenshot 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(右侧)将在照片浏览器以模态方式解除后保留在那里。在拆分视图中调用模型视图控制器是否会导致其他视图控制器被删除?

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

enter image description here

详细视图控制器(右侧)上的堆栈应为 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];
}
.
.
.

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

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

1 个答案:

答案 0 :(得分:0)

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

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

self.tableView = nil;

[self.tableView reloadData];

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