Как дать пользовательский вид для UIBarButtonItem, который отображается в портретном режиме для UISplitViewController? - PullRequest
0 голосов
/ 09 августа 2010

Когда мы используем портретный режим при использовании UISplitViewController, они будут предоставлены нам посредством barButtonItem.Как я могу использовать customView для этого barButtonItem?

Я попробовал следующий способ.Это работает, если я начну с портретной ориентации.Но если я ухожу в ландшафт и когда возвращаюсь, он падает.

В viewDidLoad

UIImage *image = [UIImage imageNamed:@"home.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, 22.00, 22.00);    
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showHomeDetails) forControlEvents:UIControlEventTouchDown];    
homeButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[button release];

Тогда в willHideViewController

barButtonItem = homeButton;

Что мне делать?ИЛИ есть альтернативное решение?

Ответы [ 3 ]

1 голос
/ 09 августа 2010

Переписали это так внутри willHideViewController и все готово.

UIImage *image = [UIImage imageNamed:@"news.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, image.size.width, image.size.height );    
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showSideTable) forControlEvents:UIControlEventTouchUpInside];    
[barButtonItem setCustomView:button];

Основное изменение удалено [отпускание кнопки].

0 голосов
/ 08 декабря 2013

Предполагается, что изображение - это пользовательский вид, который вы ищете:

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
    [barButtonItem setImage:[UIImage imageNamed:@"awesome_menu_icon.png"]];
    [[self navigationItem] setLeftBarButtonItem:barButtonItem];
}
0 голосов
/ 09 августа 2010

Я считаю, что это должно быть так:

UIImage *image = [UIImage imageNamed:@"home.png"];
UIImageView *imageView = [UIImageView initWithImage:image];
homeButton = [[UIBarButtonItem alloc] initWithCustomView:imageView];
[homeButton addTarget:self action:@selector(showHomeDetails)];
[homeButton setBounds:CGRectMake(0, 0, 22.00, 22.00)];

Надеюсь, что это решит вашу проблему
jrtc27

...