0

UISplitViewController を使用しているときにポートレート モードにすると、barButtonItem によって提供されます。そのbarButtonItemにcustomViewを使用するにはどうすればよいですか?

私は次の方法を試しました。縦向きから始めるとうまくいきます。しかし、横向きにすると、戻ってきたときにクラッシュします。

ビューでDidLoad

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;

私は何をしますか?または代替ソリューションはありますか?

4

3 に答える 3

1

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

主な変更点は[ボタンリリース]を削除。

于 2010-08-09T12:38:52.680 に答える
0

私はそれがこれであるべきだと信じています:

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

これで問題が解決することを
願っています

于 2010-08-09T12:09:40.247 に答える
0

画像が探しているカスタム ビューであると仮定します。

- (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];
}
于 2013-12-07T20:15:21.040 に答える