【问题标题】:How to update the whole view after deleting a photo in UIPageViewController?删除 UIPageViewController 中的照片后如何更新整个视图?
【发布时间】:2014-05-01 14:42:06
【问题描述】:

在我的相册应用程序中,我在收藏视图中显示照片的缩略图,并在页面视图中查看每张照片。现在我在页面视图中添加了一个删除按钮,按下删除按钮后,我可以成功删除数据库中的当前照片。但我无法更新当前视图。我想知道在哪里可以添加当前视图的更新代码(插入到页面视图中的视图),更重要的是,如何更新当前视图,就像我首先从集合视图中输入它一样。

这是我的简单删除代码。(self.ppvc 是我显示当前照片的照片页面视图控制器)

- (IBAction)deletePhoto:(UIBarButtonItem *)sender
{

    NSIndexPath *indexPathOfCurrentPhoto = [NSIndexPath indexPathForItem:self.photoNumber inSection:0];
    NSArray *photoToBeDeleted = @[indexPathOfCurrentPhoto];

    //delete from database
    [Photo deletePhotosFromAlbum:self.albumName withIndexPathArray:photoToBeDeleted inManagedObjectContext:self.ppvc.context];

    //delete from UI
    [self.ppvc.thumbnails removeObjectAtIndex:self.photoNumber];

}

【问题讨论】:

  • 你描述得不是很好。您有一个带有缩略图的集合视图,如果用户单击一个,您将切换到一个单独的显示,该显示使用 UIPageViewController 来显示一个图像/页面,并在页面之间进行横向滚动或页面卷曲?您需要更好地描述您的 UI,并描述用户删除照片所采取的操作。用户在您的页面视图控制器中查看该照片时,还是在收藏视图中时,是否点击一个按钮来删除当前照片?

标签: ios objective-c uiviewcontroller uipageviewcontroller


【解决方案1】:

如果您在 UICollectionview 中显示缩略图,您可能正在寻找方法 [collectionView deleteItemsAtIndexPaths:]。例如

[self.collectionView deleteItemsAtIndexPaths:indexPathOfCurrentPhoto];

您也可以选择通过调用 reloadSections 方法重新加载该部分。

【讨论】:

  • 对不起。你误解了我的描述。我想要做的是在页面视图中更新 UI。在我的收藏视图中,一切正常。
【解决方案2】:

THINK你说你想在UIPageViewController的当前页面上有一个删除按钮,点击删除按钮应该删除当前图像,然后更新页面视图控制器显示下一个图像(有点像从书中撕下一页,露出下面的页面。)

如果是这样,那么我认为您想使用UIPageViewController 方法setViewControllers:direction:animated:completion:。如果我正确阅读了文档,该方法可以让您用不同的视图控制器数组替换视图控制器数组。如果您设置动画:是,它应该动画滚动/页面卷曲以显示新当前图像的页面。

免责声明:我以前从未尝试在“UIPageViewController”用户界面中编辑页面列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-12
    • 2013-03-28
    • 2017-05-03
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多