1

以前の投稿/質問を更新する方法がわからなかったので、別の投稿を開始しました。(私はここで多くの質問をしていません。まだスタックオーバーフローに非常に慣れていません)

現在、バッジが 3 つあり、それらをまとめて (または個別に) 制御する必要があります。

-(void)viewWillAppear:(BOOL)animated{

[self fillBadges];

//********** Start Custom Badge All ***************//
NSString *myNewString = [NSString stringWithFormat:@"%i",allBadge];

if (allBadge >= 1) {
    CustomBadge *customBadgeAll = [CustomBadge customBadgeWithString:myNewString];
    customBadgeAll.tag = 100;
    [customBadgeAll setFrame:CGRectMake(125, 90, customBadgeAll.frame.size.width, customBadgeAll.frame.size.height)];
    [self.view addSubview:customBadgeAll];

}else{
    [[self.view viewWithTag:100] removeFromSuperview];
}

//********** Start Custom Badge 1  ***************//
NSString *myNewString1 = [NSString stringWithFormat:@"%i",badge1];

if (badge1 >= 1) {
    CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:myNewString1];
    customBadge1.tag = 200;
    [customBadge1 setFrame:CGRectMake(125, 165, customBadge1.frame.size.width, customBadge1.frame.size.height)];
    [self.view addSubview:customBadge1];
}else{
    [[self.view viewWithTag:200] removeFromSuperview];
}

//********** Start Custom Badge 2 ***************//
NSString *myNewString2 = [NSString stringWithFormat:@"%i",badge2];
if (badge2 >= 1) {
    CustomBadge *customBadge2 = [CustomBadge customBadgeWithString:myNewString2];
    customBadge2.tag = 300;
    [customBadge2 setFrame:CGRectMake(125, 232, customBadge2.frame.size.width, customBadge2.frame.size.height)];
    [self.view addSubview:customBadge2];
}else{
    [[self.view viewWithTag:300] removeFromSuperview];
}

//********** End Custom Badge ***************//

[self.view setNeedsDisplay];
[[self navigationController] setNavigationBarHidden:NO animated:NO];

}

if else ステートメントは機能しています。ただし、removeFromSuperview (動作中) は、バッジが設定された方法とは逆の順序でバッジを 1 つずつ削除するだけで、ビューを離れて戻ってきた場合にのみ削除されます。この場合は3回。例: 3 つのバッジをオンにします。viewBadgeSet では、badge2 が >1 に設定され、次に Badge1 が >1 に設定され、最後に Badge3 が >1 に設定されます (順不同)。viewMainButtons のビューを見ると、3 つのバッジがオンになっています。viewBadgeReset ですべてのバッジが 0 に設定されている場合、viewMainButtons に戻ると、badge3 はなくなります。次に、別のビューに移動してから、viewMainButtons に戻ると、badge1 がなくなり、再びビューを離れて viewMainButtons に戻ると、最終的に Badge3 がなくなります。これが理にかなっていることを願っています。ビューからすべてのバッジをまとめて削除するにはどうすればよいですか? 密集してすみません。この質問があいまいすぎないことを願っています。どうすればいいのかわからない。

(どうやらチャットに参加するのに十分なポイントがありません)

ありがとう

4

0 に答える 0