У меня есть приложение tabBar. В делегате приложения я создаю один NSMutableArray, один UITableViewController и один класс (скажем, класс B), который обновляет NSMutableArray.
Панель вкладок содержит
a) tableViewController, который показывает данные в * booksArray
б) Класс B, который добавляет данные в booksArray
TableView отлично работает при первой загрузке. Проблема в том, что при обновлении массива в UItableViewContoller не запускаются никакие изменения (, когда я снова выбираю его вкладку ). Должен ли я использовать делегирование? Нужно ли менять архитектуру?
AppDelegate:
visibleBooks = [[NSMutableArray alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:booksTableViewController];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
NSArray *viewControllers = [NSArray arrayWithObjects:navController,qrViewController, nil];
[tabBarController setViewControllers:viewControllers];
В UITableViewController .h:
@class BookDetailedViewController;
@interface BooksTableViewController : UITableViewController {
NSMutableArray *bookSource;
}
@property (nonatomic,retain) NSMutableArray *bookSource; // IS RETAIN OK?
- (id) initWithDataSource: (NSMutableArray *) source;
@end
В UITableViewController .m:
- (id) initWithDataSource: (NSMutableArray *) source
{
[super initWithStyle:UITableViewStyleGrouped];
[self setBookSource:source];
[[self navigationItem] setTitle:@"Books"];
return self;
}