핵심 데이터가없는 앱을 만들었습니다. 응용 프로그램에는 제스처, 색상 및 텍스트로보기를 조작하는 등의 많은 기능이 있습니다.코어 데이터없이 NSUndoManager를 사용할 수 있습니까?
내가 원했던 것은 실행 취소 및 다시 실행 기능을 사용하는 것입니다.
Core Data와 NSUndoManager에 대한 모든 것을 읽었으며 이해하려고하는 데 문제가 있습니다. 내가하려는 모든 작업이 작동하지 않기 때문에.
제 질문은 핵심 데이터없이 NSUndoManager를 사용할 수 있습니까?
그리고보기에 대해 어떻게 취소 할 수 있습니까?
한 작업은 내가 UndoManager에의 정보를 등록 aView (있는 UIImageView)라고 내 객체 을 변경할 수 있습니다
편집
- (IBAction)rotationDetected:(UIRotationGestureRecognizer *)gestureRecognizer {
static CGFloat initialRotation;
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){
initialRotation = atan2f(gestureRecognizer.view.transform.b, gestureRecognizer.view.transform.a);
}
CGFloat newRotation = initialRotation + gestureRecognizer.rotation;
aView.transform = CGAffineTransformMakeRotation(newRotation);
//undo
[self.undoManager registerUndoWithTarget:self selector:@selector(rotationDetected:)object:aView];
[self.undoManager setActionName:NSLocalizedString(@"viewChanged",@"title undo")];
}
그리고 클릭 된 버튼에 의해 호출되는 실행 취소 방법에 대해 설명한다 여기에 :
-(void)undo: (id) sender{
[aView.undoManager undo];
[[self undoManager] undo];
}
if 절을 삽입하면 undoManag er.canUndo == 예, undoManager가 실행 취소 할 수 없다는 것을 리턴합니다.
즉, undoManager가 nil이라는 의미입니다.하지만 그 이유는 무엇입니까? 내가 뭔가를 놓쳤습니까?
감사합니다. 내 게시물을 편집했습니다 ... – Studie
그냥 코드가 충분하지 않습니다 - 당신은 당신이 무슨 일이 일어날 것으로 예상 말할 필요합니다. 문제를 볼 수있는 올바른 스 니펫을 게시하는 훌륭한 방법이 있습니다. – occulus
전화가 걸려 오는 시간을 NSLogs에 넣었습니까? – occulus