0

この質問は、このあたりの多くの人にとって非常に愚かに聞こえるかもしれません. しかし、私はまだiOS開発の初心者であり、改善しているとはいえ、いくつかのことは私にとって混乱したままです. 私のアプリのメニューには、次の構成があります。ナビゲーションバーを含むナビゲーションコントローラーと、ナビゲーションアイテムを含むビューコントローラーを埋め込みます。私の Navigation Bar は UINavigationBar をサブクラス化して、希望どおりに見えるようにします。 

ここで、ai (情報) を使用してカスタム BarButtonItem を追加したいだけです。既に描画しています。それが私の質問です。このボタンを追加するにはどうすればよいですか?

アドバイスありがとうございます。 

4

2 に答える 2

1
// Create the Info button
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];

// Give it an action handler
[infoButton addTarget:self 
               action:@selector(infoButtonAction:)
     forControlEvents:UIControlEventTouchUpInside];

// Create a UIBarButtonItem to "contain" the Info button
UIBarButtonItem *infoItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];

// Add the UIBarButtonItem to the navigation bar (on the left side)
[self.navigationItem setLeftBarButtonItem:infoItem animated:NO];

アクションハンドラー:

- (void)infoButtonAction:(id)sender {
    NSLog(@"Tapped on info button!");
}
于 2012-05-23T17:32:46.483 に答える
1

これはあなたの質問に対する直接の答えではないかもしれませんが、UINavigationControllerを使用することを意図していたので、問題を防ぐことができるでしょう。UINavigationBarをサブクラス化してインターフェイスをカスタマイズするのではなく、UIAppearanceメソッドを使用して、通常のようにUINavigationControllerを作成します。

// Create navigation controller.
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];

// Customize navigation bar appearance.
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation-bar-background"] forBarMetrics:UIBarMetricsDefault];
于 2012-05-23T17:45:07.330 に答える