문제

Due to the neeeds of the aplication I need to call a method from a cell class of a collection view. The method is in a detail view controller which implementes the collection view .

If I call the method completely from viewDidLoad of the detail view controller at aplication start everything goes well and the button is added in the navigation bar as intended, but when I call the same method from the cell class nothing happens. Do I forget something?

Here is the code

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];

Thank you for any hint.

도움이 되었습니까?

해결책

When you write DetailViewController *dvc = [[DetailViewController alloc]init]; you are creating a new controller. It's not the one that already exists.

For your situation, you might consider having the controller listen for a NSNotification from the cell and call implementButton when it receives it.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top