0

UIButton の状態を、特定のページに表示されたときにのみ変更したいと思います ( を使用currentIndex)。しかし、次のページに移動すると、私の UIButton はselectedState変化するのではなく同じものを表示します。

これが私の実装されたコードです:

- (IBAction)bookmarkState:(id)sender {

currentIndex = [modelArray indexOfObject:contentViewController.page];
if (_BookmarkState != _bookmarkbtn.tag)   {
    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"]
                  forState:UIControlStateNormal];

    [self setBookmarkState:NO]; 
    [contentViewController.bookmarks removeIndex:currentIndex];

    } 
    else {

    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] 
                  forState:UIControlStateNormal];     

    [self setBookmarkState:YES]; 
    [contentViewController.bookmarks addIndex:currentIndex];
    }
}

どうすればこれを修正できますか。

手伝ってくれてありがとう。

4

1 に答える 1

1

コードの問題点は次のとおりです。

  • 定義しますcurrentIndexが、再度読み取ることも、元の配列を変更することもありません。
  • ブックマークを使用して配列を変更していますが、それを読み取ったことはありません。
  • おそらくボタンと呼ばれるオブジェクトのタグを、_bookmarkbtn奇妙な種類のクラス (頭文字が大文字) のように見えますが、おそらく定数である別のオブジェクトと比較します。
  • したがって、currentIndex を使用しておらず、ボタン アクションのを参照するものを比較していません。sender

ブックマーク配列の正しい要素を、tag押されたボタンの要素と比較するつもりだったのでしょうか? あなたのコードはこれを行いません。

おそらく簡単な方法は、ページが表示されるたびにボタンの正しい画像を設定し、ボタンが押されるたびにそれを切り替えることです。

于 2013-08-09T18:09:04.410 に答える