0

次のように、カスタムの戻るボタンをナビゲーション バー (カスタム ナビゲーション コントローラー) に追加しています:-

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"goback.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(handleBackButtonClick) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 32, 32)];//same as image width and height
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

バー ボタン項目 (左と右の両方) の近くをクリックすると、バー ボタンがタッチ イベントを取得します。

この奇妙な動作を防ぎたいと思います。

向けのアプリを開発していiOS7ます。

4

1 に答える 1

0

barButtonItem の width プロパティを調整しようとしましたが、うまくいきませんでした。

    self.navigationItem.leftBarButtonItem.width = 32;

しかし、私はあなたのために興味深い解決策を持っています.

カスタム ビューで 2 つのボタンを使用できます。1 つは必要なメソッドを実装し、もう 1 つはダミー ボタンです。

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:[UIImage imageNamed:@"goBack.png"] forState:UIControlStateNormal];

[button addTarget:self action:@selector(handleBackButtonClick) forControlEvents:UIControlEventTouchUpInside];

[button setFrame:CGRectMake(0, 0, 32, 32)];//same as image width and height

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:button];

UIButton *dummyButton = [UIButton buttonWithType:UIButtonTypeCustom];

UIBarButtonItem *dummyBarButton = [[UIBarButtonItem alloc] initWithCustomView:dummyButton];

self.navigationItem.leftBarButtonItems = @[barButton,dummyBarButton];
于 2013-10-23T13:36:34.610 に答える