나는 각각 별도의 객체 (체인)를 표시하는 셀 테이블을 가지고 있습니다. 각 셀에 단추를 추가하려고합니다.이 단추는 해당 셀의 체인을 인수로 호출하거나 최소한 어떻게 든 그것을 전달합니다.RubyMotion - 버튼 누르기에서 매개 변수 전달
def select_chain(sender)
unselect_old_chain
chain = Chain.find(sender.tag)
chain.selected = true
chain.save
cdq.save
end
def tableView(tableView, cellForRowAtIndexPath: indexPath)
cell = tableView.dequeueReusableCellWithIdentifier(ChainCell::ID, forIndexPath: indexPath)
cell.label_title.text = data_source[indexPath.row].title
cell.chain = data_source[indexPath.row]
button = UIButton.buttonWithType(UIButtonTypeCustom)
button.setTitle 'Go!', forState: UIControlStateNormal
button.tag = cell.chain.id
button.addTarget self, action: :select_chain, forControlEvents: UIControlEventTouchUpInside
button.backgroundColor= UIColor.greenColor
button.frame = CGRectMake(cell.frame.origin.x + 210, cell.frame.origin.y + 10, 80, 20)
cell.contentView.addSubview(button)
cell
end
나는 다음을 통해 읽었습니다 : 나를 위해 두 가지 솔루션을 제공
How to pass parameters via the selector/action?
, 둘의 작업은 다음과 같이 내 코드입니다. 첫 번째는 인스턴스 변수를 변수와 같게 설정하는 것입니다. 그러나 여러 셀이있을 경우 여러 인스턴스 변수가 필요하고 빠르게 지저분해질 수 있습니다. 나는 간단하게 사용하고 볼 수 있듯이 지금까지
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ChainsTable select_chain]: unrecognized selector sent to instance 0x1169b9000'
:되게
다른 솔루션은 내 코드에서 impliment을 시도한 태그 속성을 사용하는 것이었다, 그러나 이것은 오류가 발생합니다 Chain.find (sender.tag)를 사용하여 Chain을 찾으려고 시도하는 정수이지만, 작동하지 않습니다.
내가이 방법을 작동 시키거나 다른 접근법을 얻는 방법에 대한 조언은 크게 감사하겠습니다.
미리 감사드립니다.