2

ボタン バー アイテムの識別子リストで UIButtonTypeInfoLight の選択肢を探していますが、表示されません。では、2つ質問です。

  1. 不足しているだけで、コードで手動で作成する必要がありますか? なぜ彼らはそれを省略したのだろうと思います。

  2. ボタンを手動で作成し、そこからセグエを呼び出す必要があると仮定すると、ストーリーボードを使用するのではなく、手動でセグエを実行する必要がありますか?

[self performSegueWithIdentifier:@"ShowChecklist" sender:nil];ボタンが呼び出しているメソッドからこれを行うと仮定しています。

私のボタンを作成したコードは

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(infoButtonAction) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setRightBarButtonItem:modalButton animated:YES];

では、これはよくあるパターンですか?私は奇妙で非標準的なことをしていますか? BarButton が「info」と表示された単なるカスタム ボタンである場合、それを作成してストーリーボードですべて接続できるのは奇妙に思えますが、これについてはすべてコードで行う必要があります。

メニュー:

4

1 に答える 1

7

UIButtonTypeInfoLight は UIButton です。ボタン バー アイテムは UIBarButtonItems です。彼らはお互いに何の関係もありません。リンゴとオレンジを混同しているだけです。

ただし、UIBarButtonItemには UIButton を含めることができます。(これは、任意のUIViewを含めることができるという事実によるものです。) UIButton をツールバーにドラッグします。得られるのは、UIButtonを含むUIBarButtonItemです。UIBarButtonItemをダブルクリックすると、UIButton が取得されます。これで、ボタンのタイプを設定できます。

于 2012-02-06T02:55:44.857 に答える