1

のように表示されるはずです先祖返り - 私が増加「= 1099、カウントのように」とは異なりボタンのようにしたいボタンの変更をクリックした場合の説明が発生>。私は戻って押した場合、私はとは異なり、このがラベルに言うと、再びどのように私はこれを達成することができます助けてくださいとは異なりを表示しなければならないなどCountが1100 あるべき先祖返りボタンを選択してみましょう次の先祖返りに表示させたいです?は、私が選択する客観C

enter image description here enter image description here

//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; 
    } 
} 

答えて

0

あなたはデータモデルに 'いいね!' の数や状態をカプセル化することができます。
コントローラは両方ともデータモデルにアクセスして変更できます。この場合、データモデルはsingletonになる可能性がありますので、コントローラで取得することができます。
サーバーへのデータまたはローカルストレージへの永続データの同期が必要な場合があります。データモデルは、このサービスをすべてカプセル化できます。あなたが戻っ詳細ページから、あなたのストーリーのViewControllerを更新する場合

:ここ

は、いくつかのサンプルコードは、

// YourDataModel 
@interface YourDataModel : NSObject 

@property (nonatomic, assign) NSNumber *numbersOfLike; 
@property (nonatomic, assign) BOOL like; 

@end 
@implemention 
+ (id)shareInstance { 
    static dispatch_once_t onceToken; 
    static YourDataModel *model; 
    dispatch_once(&onceToken, ^{ 
    model = [[YourDataModel alloc] init]; 
    }); 
    return model; 
} 

// maybe sync data to backend server. 
- (void)sync { 
} 

// load like numbers from local storage or remote server 
- (instancetype)init { 

} 

// Then you can use it in your controllers 
[[YourDataModel shareInstance] like]; 
[[YourDataModel shareInstance] numbersOfLike]; 
[[YourDataModel shareInstance] setLike:false]; 

更新です。 viewWillAppear()デリゲートで 'like status'を更新できます。 Apple's official documentの詳細を確認できます。

+0

良い考えですが、不適切なモデルです。 OPには、ストーリーの配列を持つモデルが必要です。ストーリーには、タイトル、テキスト、likeCountなどの属性があります。また、このユーザーがストーリーを気に入ったと判断する方法を提供する必要があります。これはおそらく、モデルにユーザーオブジェクトがあることを示しています。この大きなモデル(ユーザーとストーリーリスト)は、この場合シングルトンとなるものになります。 – danh

+0

@danhはい、あなたは正しいです。同じかどうかはユーザーの状態です。モデルはOPの実際のシナリオに従って設計する必要があります)。 – Nickolas

+0

@Nickolasは、jsonファイルにデータを保存しようとすることができます。なぜなら、カウントのようなすべてのカウントが私の.jsonファイルから抽出されているからです。 –