Кнопка в пользовательской ячейке и перезагрузка родительского табличного представления - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть tableViewController и RSS-каналы, загруженные в tableView .Я хочу реализовать ячейку "как заголовок" (типа OrderCell.h / .m ) с пользовательскими кнопками "порядок по дате" и "порядок по популярности", которые переупорядочивают массив rssItems при нажатии обновите представление таблицы.

Как обновить tableView из OrderCell метода объекта?У меня нет проблем с переупорядочением массива rssItems, потому что я определил его как статическую переменную со статическими методами, доступными вне класса TableViewController .Моя проблема вызывает [xxx.tableView reloadData]; , когда пользователь нажимает кнопку «упорядочить по».Поскольку объект OrderCell создается из объекта TableViewController, как я могу вызвать метод перезагрузки объекта TableViewController?

Заранее спасибо, Лука

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Вы можете определить свой собственный протокол, который будет реализован (подтвержден) классом TableViewController,

В myTableClass.h

@protocol AppDelegate

-(void) OrderSelected ;

@end

@interface myTableClass : UITableViewController <AppDelegate> 
{
  .......
}
@end

В OrderCell.h

@interface OrderCell : .....
{
  id<AppDelegate> myDelegate;
}
@property(nonatomic,assign)  id<AppDelegate> myDelegate;;
@end

В OrderCell.cpp

@synthesize myDelegate;

-(void) myButtonAction:(id) sender
{
   [myDelegate OrderSelected]; 
}

и

В myTableClass.cpp

Когда вы создаете OrderCell, просто напишите онлайн-оператор

myOrderCell.myDelegate = self;

и реализуйте функцию протокола

-(void) OrderSelected 
 {
   [self.tableView reloadTable];
 }
0 голосов
/ 05 апреля 2011

сначала добавьте делегат в другой класс для вашего контроллера табличного представления и назначьте текущий контроллер табличного представления этому делегату, а в свой контроллер табличного представления добавьте метод, подобный

 -(void) updateTableItems {
    [self.table reloadData];
}


-(void) threadLoop { 

[self performSelectorOnMainThread:@selector(updateTableItems) withObject:nil waitUntilDone:NO];

}

, теперь используя делегат вызова другого классаThreadLoop вашего контроллера представления таблицы, удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...