0

これは私を悩ませています!右側の「フラッシュ」ボタンをプログラムでナビゲーション バーに追加しようとしていますが、何らかの理由で表示できません。私のコードは以下です。誰でも私を助けることができますか?前もって感謝します。

 //Note: flashButton is declared as a UIButton property in .h, and synthesized in .m        
    UIView *flashContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 36, 36)];

    [flashButton addTarget:self action:@selector(toggleTorch) forControlEvents:UIControlEventTouchUpInside];
    [flashButton setBackgroundImage: [UIImage imageNamed:@"FlashIconInactive_small.png"] forState:UIControlStateNormal];
    [flashButton setBackgroundImage: [UIImage imageNamed:@"FlashIconActive_small.png"] forState:UIControlStateHighlighted];

    [flashContainer addSubview:flashButton];
    [flashButton sizeToFit];

    UIBarButtonItem *flashButtonItem = [[UIBarButtonItem alloc] initWithCustomView:flashContainer];

    scannerVC.delegate = self;
    scannerVC.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped)];
    [[scannerVC navigationItem] setRightBarButtonItem:flashButtonItem];
4

1 に答える 1

1

flashButton は、IBOutlet を介して xib またはストーリーボードのボタンに接続されていますか? そうでない場合は、 +[UIButton buttonWithType:]を使用して UIButton のインスタンスを作成する必要があります。

もう 1 つのテストとして、最初の行 (addTarget: one) にブレークポイントを設定po flashButtonし、デバッガーに入ります。出力は何ですか?nil の場合、ボタンは存在しないため、作成する必要があります。

于 2013-01-26T23:22:45.890 に答える