When I select Throwback -> Description occurs if I click on like button the like button changes to unlike and " like count=1099" increases. If I press back I want this unlike to be displayed next to Throwback let say in a label and again select Throwback button should display unlike and like Count should be 1100. please Help how can i achieve this ?
//DetailOfUser.m
#impot"DetailsOfStories.h"
@interface DetailOfUser ()<UITableViewDelegate,UITableViewDataSource>
{
NSMutableArray *arrayAboutList;
DetailsOfStories *viewController;
}
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell";
UILabel *title=[(UILabel *)cell viewWithTag:2];
title.text=[NSString stringWithFormat:@"%@", [arrayAboutList[indexPath.row] valueForKey:@"title"]];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
viewController=[self.storyboard instantiateViewControllerWithIdentifier:@"DetailsOfStories"];
viewController.descriptionList = [arrayAboutList[indexPath.row] mutableCopy];
[self.navigationController pushViewController:viewController animated:YES];
}
@end
//DetailsOfStories.m
#import "DetailOfUser.h"
@interface DetailsOfStories ()
{
NSMutableArray *descriptionList;
BOOL buttonToggled;
int number,number1;
NSNumber *num1;
}
@end
@implementation DetailsOfStories
@synthesize descriptionList;
- (void)viewDidLoad {
UILabel *like_count=(UILabel *)[self.view viewWithTag:3];
NSNumber *someNumber = @(number);
NSString *someString = [someNumber stringValue];
like_count.text=someString;
}
- (IBAction)like:(id)sender {
if (!buttonToggled) {
[sender setTitle:@"Unlike" forState:UIControlStateNormal];
//number is interger
number = [num1 intValue]+1;
number1=number;
UILabel *like_count=(UILabel *)[self.view viewWithTag:3];
NSNumber *someNumber = @(number);
NSString *someString = [someNumber stringValue];
like_count.text=someString;
buttonToggled = YES;
}
else {
[sender setTitle:@"Like" forState:UIControlStateNormal];
number1 = number1-1;
UILabel *like_count=(UILabel *)[self.view viewWithTag:3];
NSNumber *someNumber = @(number1);
NSString *someString = [someNumber stringValue];
like_count.text=someString;
buttonToggled = NO;
}
}
You can encapsulate the 'likes' number and status into a data model.
Both your controllers can access and modify the data model. In this case, data model can be a
singleton
, so that you can acquire it in your controllers.May be you need sync data to server or persistent data to local storage later, data model can encapsulate all this service.
Here is some code sample
Update:
If you want to update your story viewcontroller back from detail page. You can update 'like status' in its
viewWillAppear()
delegate. You can check details on Apple's official document.