【问题标题】:Why UIButton showing selected state when turning page over为什么UIButton在翻页时显示选中状态
【发布时间】:2013-08-09 17:12:23
【问题描述】:

我想更改 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];
    }
}

我该如何解决这个问题。

感谢您的帮助。

【问题讨论】:

    标签: iphone objective-c ios6 uibutton


    【解决方案1】:

    你的代码有什么问题:

    • 您定义了currentIndex,但既没有再次读取它,也没有更改它的来源数组。
    • 您正在更改带有书签的数组,但您从未阅读过它。
    • 您将一个名为_bookmarkbtn 的对象的标签(可能是一个按钮)与另一个看起来像某种奇怪的类(首字母大写)但可能是常量的对象进行比较。
    • 因此,您使用 currentIndex,并且比较引用按钮操作的sender 的任何内容。

    也许您打算将书签数组的正确元素与按下按钮的tag 进行比较?您的代码没有这样做。

    也许一种直接的方法是在页面出现时简单地设置正确的按钮图像,并在按下按钮时切换它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      相关资源
      最近更新 更多