我想更改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];
}
}
我该如何解决这个问题。
感谢您的帮助。
答案 0 :(得分:1)
以下是您的代码出了什么问题:
currentIndex
但不会再次读取它,也不会更改它来自的数组。_bookmarkbtn
的对象的标记(可能是一个按钮)与另一个看起来像某种奇怪类(初始大写字母)的对象进行比较,但这可能是一个常量。 sender
的内容。 也许您打算将书签数组的正确元素与按下的按钮的tag
进行比较?你的代码没有这样做。
也许直接的方法是在页面出现时简单地设置正确的按钮图像,并且只要按下按钮就切换它。