Как добавить uibuttonitem, вызвав метод из другого класса
Из-за потребностей приложения мне нужно вызвать метод из класса ячеек представления коллекции. Метод находится в контроллере подробного представления, который реализует представление коллекции.
Если я вызываю метод полностью из viewDidLoad контроллера подробного представления при запуске приложения, все идет хорошо, и кнопка добавляется в панель навигации, как и предполагалось, но когда я вызываю тот же метод из класса ячеек, ничего не происходит. Я что-то забыл?
Вот код
collectionViewCell.m
- (void) addButtonToNavigationBar {
DetailViewController *dvc = [[DetailViewController alloc]init]
[dvc implementButton];
}
DetailViewController.h
- (void) implementButton;
DetailViewController.m
- (void) implementButton {
addButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(editTable)];
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleBordered];
[self.navigationItem setRightBarButtonItem:addButton animated:YES];
Спасибо за любую подсказку.
1 ответ
Когда ты пишешь DetailViewController *dvc = [[DetailViewController alloc]init];
вы создаете новый контроллер. Это не тот, который уже существует.
В вашей ситуации вы можете рассмотреть возможность прослушивания контроллера NSNotification
из клетки и звоните implementButton
когда он получит это.