Q:

Write BOOL value to plist from a button

Background
I have 2 tableViews, the first one is the Main table and the second one is the Favorites table.
Everything is handled with a plist.
From the detailView of the first table, in the upper-corner I set up a button to write to the plist the value YES.
The plist is structured this way:
Section 1                  Dictionary
      Title                String
      Rows                 Array 
        Item 0             Dictionary
           name            String
           description     String
           image           String
           isFav           Bool (default NO)
      Item 1               Dictionary
           name            String
           description     String
           image           String
           isFav           Bool (default NO)

Section 2
      Title
      Rows
        Item 0             Dictionary
           name            String
           description     String
           image           String
           isFav           Bool (default NO)
        etc..

Adding a little scheme of how it should work:
firstTable          detailView                          plist
 __________          ________                   
|          |        |     |★ |<- button pressed ---> cellname isFav = YES      
|__________|        |        |               
|cellname  | ------>| detail |    
|__________|        |        |               
|          |        |        |               
|          |        |        |                

The problem
Now that I have that button, I was trying to write a method to write the isFav bool value to the plist. 
-(void)makeFavorite
I already had a method to read the plist, but I don't know how to write a value on it.
I tried to search on google and read other stackOverflow posts but I can't really figure it out.
Any help appreciated! 
EDIT
This is the method do read the plist
- (NSArray*)readPlist 
{ 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *plistPath = [[documentPaths lastObject] stringByAppendingPathComponent:@"tipsList.plist"]; 

    NSFileManager *fMgr = [NSFileManager defaultManager]; 
    if (![fMgr fileExistsAtPath:plistPath]) { 
        plistPath = [[NSBundle mainBundle] pathForResource:@"tipsList" ofType:@"plist"]; 

    } 
    return [NSArray dictionaryWithContentsOfFile:plistPath];
}

And in the method I was typing:
- (void) makeFavorite:(id)sender
 {   
     NSArray *test = [self readPlist];
     NSLog (@"test: %@",test);
    //write plist instructions then
 }

A:

Are you looking for:
[myDictionary setObject:[NSNumber numberWithBool:NO] forKey:@"isFav"]

A:

you can pass the indexPath from your tableView to your detailView. Create a
@property (copy) NSIndexPath *indexPath;

in your detailView and assign it with
detailView.indexPath = indexPath; // the one from the current selected cell

Then you can create a favorite method like this one:
- (IBAction)makeFavorite 
{ 
    NSArray *plist = [self readPlist]; 
    NSDictionary *theItem = [[[plist objectAtIndex:indexPath.section] valueForKey:@"Rows"] objectAtIndex:indexPath.row];
    // get the current state 
    BOOL fav = [[theItem valueForKey:@"isFav"] boolValue]; 
    // set the opposite of the current value 
    [theItem setValue:[NSNumber numberWithBool:!fav] forKey:@"isFav"]; 

    [self writePlist:plist]; 

    // update the UI, set new image or something
    self.navigationItem.rightBarButtonItem.image = [UIImage imageNamed:(!fav ? @"FullStar.png" : @"EmptyStar.png")];
}

