2012-11-16 2 views
0

Rubymotion 앱을 만들고 Navbar에서 맞춤 검색 버튼을 만들어야합니다. 컨트롤러에서 코드를 실행 중입니다. 레이크 실행할 때탐색 바에 맞춤 검색 버튼을 추가하는 방법은 무엇인가요?

button = UIBarButtonItem.alloc.init 
    button.title = 'Add' 
    button.style = UIBarButtonItemStylePlain 
    button.target = self 
    button.action = 'performAdd' 
    button.setBackgroundImage(checkInImage, forState:UIControlStateNormal, forBarMetrics:UIBarMetricsDefault) 
    button.setBackgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault) 
    self.navigationItem.rightBarButtonItem = button 

그러나 나는이 오류가 :

이 코드를 사용하고

Terminating app due to uncaught exception 'NoMethodError', reason: 'first_controller.rb:21:in `button': undefined method `setBackgroundImage' for #<UIBarButtonItem:0x6b3c1d0> (NoMethodError) 

솔루션을

button = UIBarButtonItem.alloc.init 
     button.title = 'Add' 
     button.target = self 
     button.action = 'performAdd' 
     button.setBackgroundImage(checkInImage, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault) 
     button.setBackgroundImage(checkInPressed, forState:UIControlStateHighlighted, barMetrics:UIBarMetricsDefault) 
self.navigationItem.rightBarButtonItem = button 

답변

2

.. 당신은 몇 가지 아이디어를 얻을 수있는 희망, 그것은 barMetrics하지 forBarMetrics입니다. 그래서 :

setBackgroundImage(checkInImage, 
        forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault) 
+0

@dylan을 편집 해 주셔서 감사합니다! –

+0

이것은 완벽하게 작동했습니다! 감사! 그런데 –

+0

, RubyMotion 단지 발표 API 문서 대신 애플의 Obj-C 레퍼런스를 사용하지의 루비에 적절한 방법을 볼 수 있도록 : http://www.rubymotion.com/developer-center/api/UIBarButtonItem.html# setBackgroundImage % 3AforState % 3AbarMetrics % 3A 내지 instance_method –

1

`RubyMotion에 정말 새로 왔지만 여전히 당신을 도우려고 노력하고 있습니다. 어떤 곳에서든 올바르지 않다면 용서해주십시오.

편집

: 정의되지 않은 메서드 setBackgroundImage' for #<UIBarButtonItem:0x6b3c1d0> (NoMethodError) : 은 충돌 로그 Terminating app due to uncaught exception 'NoMethodError', reason: 'first_controller.rb:21:in 버튼 '을보고. 내 생각에, 당신은 View controller에서 backgroundImage를 설정하기위한 올바른 방법을 호출하지 않습니다. 왜 그런 예외가 올 것인가? 그렇습니다.

그리고 나는 정확한 이유는 setBackgroundImage 곤하는 법이 될 수 있다고 생각은 당신이 당신의 ViewController에 코드의 라인 아래에 시도해야 그 때는 .IT가 backgroundImage해야 올바른 방법이 아닙니다 같아요.

button.backgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault). 

여기에 한 줄만 변경하는 코드가 있습니다.

Here is The Link For The same You should take a View of this Link.

button = UIBarButtonItem.alloc.init 
    button.title = 'Add' 
    button.style = UIBarButtonItemStylePlain 
    button.target = self 
    button.action = 'performAdd' 
    button.backgroundImage(checkInImage, forState:UIControlStateNormal, forBarMetrics:UIBarMetricsDefault) 
    button.backgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault) 
    self.navigationItem.rightBarButtonItem = button 

내가 내 독서에 따르면

+0

@ NSPostWhenIdle 죄송합니다. 나는 잘못된 way.sorry에 다시갔습니다. 나는 그것을 삭제하거나 편집 할 것입니다. – Kamarshad

+0

@NSPostWhenIdle 감사합니다. 이제 해결책을 찾을 수 있도록 답변을 편집 할 수 있습니다. – Kamarshad

+0

감사합니다! 그러나 이것은 도움이되지 못했습니다. –