2015-02-05 1 views
0

создал настраиваемый UIBarButtonItem:поповер сбой на действие UIBarButtonItem в прошивкой

UIButton *favButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 42.0, 30.0)]; 
[favButton setImage:[UIImage imageNamed:@"iphone-navbar-icon-star-normal.png"] forState:UIControlStateNormal]; 
[favButton addTarget:self action:@selector(actionButtonFavorite:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *barBtnFavorites = [[UIBarButtonItem alloc] initWithCustomView:favButton]; 

А на кнопке мышь Я открытие поповера.

- (void)actionButtonFavorite:(UIBarButtonItem *)sender 
{ 
    self.selectedButtonTag = sender.tag; 
    favoriteOptionsVC.contentSizeForViewInPopover = CGSizeMake(favoriteOptionsVC.view.frame.size.width, (IS_iOS_VERSION_7?190.0:160.0)); 
    UINavigationController *favoritesNavVC = [[UINavigationController alloc] initWithRootViewController:favoriteOptionsVC]; 
    self.favoritesPopoverController = [[UIPopoverController alloc] initWithContentViewController:favoritesNavVC]; 
    favoriteOptionsVC.containingPopoverController = self.favoritesPopoverController; 
    [self.favoritesPopoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
} 

Но приложение врезаться говоря:

[UIButton view]: unrecognized selector sent to instance 0x7a7445e0 

Отправитель экземпляр UIBarButtonItem:

enter image description here

enter image description here

Может кто-нибудь помочь?

+0

RU использовали эту строку в проекте ** self.navigationItem.leftBarButtonItem = barBtnFavorites; ** –

+0

отправитель в ваш случай - это UIButton, а не UIBarButtonItem, который является типом actionButtonFavorite: ожидается –

+0

Нет! Sender - экземпляр UIBarButtonItem, см. Мой отредактированный пост – parilogic

ответ

0

Конечно, отправитель является UIBarButtonItem, он неявно указан в вашей функции. Настоящий отправитель (экземпляр, вызывающий метод) - это UIButton. Попробуйте это:

UIBarButtonItem *barBtnFavorites = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(actionButtonFavorite:)]; 

Чтобы сделать свой "обычай" UIBarButtonItem использовать это:

UIBarButtonItem *barBtnFavorites = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"iphone-navbar-icon-star-normal.png"] 
                    style:UIBarButtonItemStylePlain 
                    target:self 
                    action:@selector(actionButtonFavorite:)]; 
+0

Привет, мне нужна настраиваемая кнопка, а не системная кнопка. Он сбой с помощью кнопки «Пользователь». – parilogic

+0

См. Мое редактирование выше. –