2014-04-05 4 views
1

RubyMotion을 사용하여 UIButton을 사용하여 토글 버튼을 만듭니다.# <UIButton : 0xa7f1390>에 대해 정의되지 않은 메소드`selected '

이 내가 내가이 오류를 받고 있어요 이유는 확실하지 않다

`block in update:': undefined method `selected' for #<UIButton:0xa7f8f80> (NoMethodError) 
    from uicontrol.rb:93:in `call:event:' 

있다는 오류가 나는 그러나

@favorite = rmq.append(UIButton, data[:fav] == 1? :fav_button_selected : :fav_button_deselected).get 
@favorite.setTitle("d", forState: UIControlStateNormal) 
@favorite.setTitle("s", forState: UIControlStateSelected) 


@favorite.on(:touch) do |sender| 
    sender.selected = !sender.selected #gives error 
    # sender.selected = true ##This works fine! 
end 

을하고 있어요 것입니다. 내가 selected 속성을 잘 설정할 수 있지만 그것을 얻으려고하면 위의 오류가 발생합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

'! sender.selected'로 무엇을 표현 하시겠습니까? 나는 이것을 얻지 못한다. – iltempo

+0

토글 버튼을 표현하고 싶습니다. 클릭하면 선택한 속성을 반대쪽으로 변경하려고합니다. 이 대답에서 언급 한 바와 같이 http://stackoverflow.com/questions/22884850/undefined-method-selected-for-uibutton0xa7f1390 – Anthony

+0

물론. 이제 알겠다. – iltempo

답변

1

쉬운! 사용하지 않아도됩니다 isSelected

sender.selected? # <= add the '?' mark :-) 
+0

당신은'isSelected'를 사용할 수 있습니다, 그것은 같은 방법입니다, 그러나 RubyMotion은 더 관용적 인'selected? '메소드를 제공합니다. "isSomethingBlaFoo"패턴을 가진 "getter"는'somethingBlaFoo? '메소드를 갖습니다. – colinta

관련 문제