Я реализующий NSNotifications
в UITableViewHeaderFooter
подкласса, потому что я хочу, чтобы изменить название section
при нажатии на один row
этого section.In UITableViewHeaderFooter
там есть observer
и в tableViewController
это postnotification
. Я зарегистрировал объект уведомления в наблюдателе, и я вижу журнал много раз, так как разделы находятся в tableview
, для меня это неплохо, потому что я могу управлять им, передавая indexPath.section, но это нормально? Могу ли я иметь проблемы, если у меня есть больше разделов? Есть ли способ справиться с этим?NSNotification называется много раз, когда наблюдатель находится в UITableViewHeaderFooter подклассе
Как я сказал Joiningss в другом вопросе, у меня есть проблемы с заголовком раздела, когда я прокрутка в Tableview, изменение заголовка и показать название, которое я имел прежде. (Проблемы переиспользуемости ..)
Вот мой код (Прости меня за код это просто тест)
Первый мой заказ HeaderFooterView:
- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithReuseIdentifier:reuseIdentifier];
if (self) {
self.contentView.backgroundColor = [UIColor blackColor];
textLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 200, 14)];
[textLabel setTextColor:[UIColor whiteColor]];
[textLabel setFont:[UIFont systemFontOfSize:14]];
[textLabel setBackgroundColor:[UIColor clearColor]];
[self.contentView addSubview:textLabel];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(somethingHappens:) name:@"notificationName" object:nil];
}
return self;
}
-(void) somethingHappens:(NSNotification*) notification
{
NSLog(@"Notification %@", notification);
NSDictionary *notificationDic = notification.object;
NSString *title = [notificationDic valueForKey:@"title"];
NSIndexPath *indexPath = [notificationDic objectForKey:@"index"];
[self configureHeaderSectionWithString:title andSection:indexPath.section];
}
-(void)configureHeaderSectionWithString:(NSString *) text andSection:(NSInteger)section
{
if(self.section == section)
textLabel.text = text;
}
Вот мои методы Tableview для реализации этого:
Пожалуйста, покажите код, где вы регистрируетесь и отправляете уведомления – bengoesboom
Не стесняйтесь! Просто никогда не добавляйте наблюдателя более одного раза для просмотра в разрезе. Как bengoesboom говорит, покажите код, где вы регистрируетесь и отправляете уведомления! – Joiningss
Хорошо, он уже отредактирован. Спасибо – croigsalvador