2014-12-18 5 views
0

버튼 클릭시 UIPickerView을 재설정하려고합니다. StackOverflow의 검색 후에 I는 발견Objective C를 RubyMotion으로 다시 작성하는 방법

[picker reloadAllComponents]; 
[picker selectRow:0 inComponent:0 animated:YES]; 

은이 같은 루비를 재 작성 :

def reset_picker 
    @picker.reloadAllComponents 
    @picker.selectRow(0, inComponent: 0, animated: true) 
    end 

상기 단지 첫번째 성분 리셋; 세 가지 구성 요소를 모두 다시 설정하려면 어떻게합니까? reset_picker 메서드에서 inComponent : 0을 수행 할 항목이 있다는 것을 알고 있습니다. - inComponent: 0 구성 요소의 인덱스 관련

def numberOfComponentsInPickerView(pickerView) 
    component_options.count 
    end 

    def pickerView(pickerView, numberOfRowsInComponent: component) 
    component_options[component].count 
    end 

    def pickerView(pickerView, titleForRow: row, forComponent: component) 
    component_options[component][row] 
    end 

답변

0

당신은 맞다 : 아래

UIPickerView 메소드 호출이다. 속임수를 썼는지 도움에 대한

def reset_picker 
    @picker.reloadAllComponents 
    @picker.selectRow(0, inComponent: 0, animated: true) 
    @picker.selectRow(0, inComponent: 1, animated: true) 
    @picker.selectRow(0, inComponent: 2, animated: true) 
end 
+0

감사를 염두에두고

, 당신은 단지에 필요한 모든 세 가지 구성 요소를 재설정합니다! – Hyetigran

+0

문제 없으니 기꺼이 도와 드리겠습니다. 사소한 일이지만,'reloadAllComponents'에 대한 초기 호출이 필요하지 않아야합니다. 단지 코드에 맞도록 유지했습니다. – InsertWittyName

+0

맞습니다.'reloadAllComponents'가 없어도 정상적으로 작동합니다. 이것을'self.numberOfComponentsInPickerView.times do | x |'라는 블록에 넣을 수 있을까요? – Hyetigran