2

私は過去 2 日間、頭を悩ませ、独自の解決策をいくつか探して試してきました。IB を介して UIBarButtonItem を配置し、上部のバーに画像を配置して、ミュート/ミュート解除ボタンとして機能させました。画像が変わらないことを除いて、すべてが機能します。次のコードを使用しましたが、コンパイルされますが変更はありません

if( mute == YES ) {
    UIImage *unmuteImage = [UIImage imageNamed:@"audio-on.png"];
    [self.muteButton setImage:unmuteImage];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"muteKey"];
}
else {
    UIImage *muteImage = [UIImage imageNamed:@"audio-off.png"];
    [self.muteButton setImage:muteImage];
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"muteKey"];
}
4

2 に答える 2

5

私はついにそれを理解しました...ほんの数日しかかかりませんでしたが、私は忙しすぎて解決策を投稿できませんでした。ようやく時間が取れて、解決策を投稿できることをうれしく思います。プログラムで100%実行しないと、これは機能しないという予感があり、私は正しかった。これが私の問題の最終的な解決策です:

if(mute == YES)
{
    UIImage *image = [UIImage imageNamed:@"audio-off.png"];
    UIButton *myMuteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    myMuteButton.bounds = CGRectMake( 0, 0, image.size.width, image.size.height );    
    [myMuteButton setImage:image forState:UIControlStateNormal];
    [myMuteButton addTarget:self action:@selector(mute) forControlEvents:UIControlEventTouchUpInside];    
    UIBarButtonItem *myMuteBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myMuteButton];   
    navBar.leftBarButtonItem = myMuteBarButtonItem;
    [myMuteBarButtonItem release];
}
else
{
    UIImage *image = [UIImage imageNamed:@"audio-on.png"];
    UIButton *myUnmuteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    myUnmuteButton.bounds = CGRectMake( 0, 0, image.size.width, image.size.height );    
    [myUnmuteButton setImage:image forState:UIControlStateNormal];
    [myUnmuteButton addTarget:self action:@selector(mute) forControlEvents:UIControlEventTouchUpInside];    
    UIBarButtonItem *myUnmuteBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myUnmuteButton];
    navBar.leftBarButtonItem = myUnmuteBarButtonItem;
    [myUnmuteBarButtonItem release];
}

幸いなことに、私はついにアプリを完成させ、アプリストアに提出しました。うまくいけば、すべてがスムーズに進み、それを楽しみにしています!

于 2010-07-09T00:48:34.047 に答える
0

迅速、

インスタンス var の周囲に設定し、それを使用してスイッチを切り替えました。また、ナビゲーション バーには 3 つのボタンがありました。

private var activeStaff:Staff? {
    didSet {
        let image = (activeStaff == nil) ? UIImage(named: "active")! : UIImage(named: "notActive")!
        let button = UIBarButtonItem(image: image, style: .Plain, target: self, action: "activePressed:")

        if navigationItem.rightBarButtonItems?.count == 3 {
            navigationItem.rightBarButtonItems?.removeAtIndex(0)
        }

        navigationItem.rightBarButtonItems?.insert(button, atIndex: 0)
    }
}
于 2015-12-03T04:00:49.060 に答える