Как добавить 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 когда он получит это.

Другие вопросы по тегам