OSDN Git Service

Don't save when no text is modified.
authorHirami <tomohisa.hirami@nifty.com>
Fri, 30 Mar 2012 23:59:40 +0000 (08:59 +0900)
committerHirami <tomohisa.hirami@nifty.com>
Fri, 30 Mar 2012 23:59:40 +0000 (08:59 +0900)
iOS/Tombo/Tombo/DetailViewController.h
iOS/Tombo/Tombo/DetailViewController.m

index b7618fc..43611c0 100644 (file)
@@ -2,7 +2,7 @@
 #import "FileItem.h"
 #import "Storage.h"
 
-@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>
+@interface DetailViewController : UIViewController <UISplitViewControllerDelegate,UITextViewDelegate>
 
 @property (strong, nonatomic) FileItem *detailItem;
 @property (strong, nonatomic) Storage *storage;
index 374f9d2..78c5c6b 100644 (file)
@@ -1,7 +1,9 @@
 #import "DetailViewController.h"
 #import "MasterViewController.h"
 
-@interface DetailViewController ()
+@interface DetailViewController () {
+    BOOL isModify;
+}
 @property (strong, nonatomic) UIPopoverController *masterPopoverController;
 - (void)configureView;
 @end
@@ -59,7 +61,9 @@
                    name:UIKeyboardDidHideNotification
                  object:nil];
 
+    self.detailText.delegate = self;
     [self configureView];
+    isModify = NO;
 }
 
 - (void)viewDidUnload
 
 - (void)viewWillDisappear:(BOOL)animated {
     // Leaving detail view
-    NSString *note = self.detailText.text;
-    
-    FileItem *newPath = [storage save:note item: self.detailItem];
-    
-    // To notify master view, retract reference from navigation controller.
-    MasterViewController *master = [self.navigationController.viewControllers objectAtIndex:0];
-    
-    if (self.detailItem.name) {
-        // item exists
-        if (self.detailItem != newPath) {
-            [master itemChanged: self.detailItem to:newPath];
+    if (isModify) {
+        NSString *note = self.detailText.text;    
+        FileItem *newPath = [storage save:note item: self.detailItem];
+        
+        // To notify master view, retract reference from navigation controller.
+        MasterViewController *master = [self.navigationController.viewControllers objectAtIndex:0];
+        
+        if (self.detailItem.name) {
+            // item exists
+            if (self.detailItem != newPath) {
+                [master itemChanged: self.detailItem to:newPath];
+            }
+        } else {
+            // new item
+            [master itemAdded: newPath];
         }
-    } else {
-        // new item
-        [master itemAdded: newPath];
     }
     
     [super viewWillDisappear: animated];
     }
 }
 
+- (void)textViewDidChange:(UITextView *)textView {
+    isModify = YES;
+}
+
 #pragma mark - Notification handler
 
 - (void)keyboardDidShow:(NSNotification*)notification {