我有一个撤消功能,谁工作得很好。我的应用程序是一个具有多种效果的照片编辑器。当我为我的照片添加多种效果并撤消所有这些效果时,它的效果非常好,但是当我想再次添加滤镜/效果并且我想再次撤消时,它不起作用。我的意思是我的撤消功能只工作一次。
有人可以告诉我为什么它只工作一次吗?
有我的职能谁工作:
- (无效(更新图像:(UIImage*(图像 { [undoManager registerUndoWithTarget:self selector:@selector(updateImage:( object:Images]; _imageView.图像 = 图像; } - (无效(推送UndoBtn:(id(sender { [撤消管理器撤消]; }
我是如何引用我的撤消管理器的:
@implementation _CLImageEditorViewController { NSUndoManager * undoManager; } - (空(视图加载 { [超级视图确实加载]; undoManager = [[NSUndoManager alloc] init]; }
你应该把旧图像(_imageView.image
(传递给-registerUndoWithTarget:selector:object:
,而不是新图像(Images
(。您希望撤消操作调用旧映像的-updateImage:
以还原旧状态。所以:
[undoManager registerUndoWithTarget:self selector:@selector(updateImage:) object:_imageView.image];