2016-10-03 5 views
-1

저는 신속하게 작업하고 있습니다. 모든있는 UIButton 있습니다 1.1.1에서 1.2.6로이 그림에서다중 매개 변수가있는 버튼 동작

enter image description here

:이 뷰 컨트롤러를했습니다. 이 버튼은 프로그래밍 방식으로 생성됩니다. 이제 각 버튼을 클릭하면 2 매개 변수를 전달해야합니다. 1.1.1 오버플로을 고려하면 "1.1.1""오버플 로어"을 매개 변수로 전달해야합니다. 나는 아래와 같이 시도했다 : -

ov_button.tag = "1.\(i).1" 
ov_button.addTarget(self, action: #selector("i3Vatrom.romBeskrivelse:") 
, forControlEvents: UIControlEvents.TouchUpInside) 

그러나 그것은 효과가 없다. 내가 생각하는이 작업을 수행하는 방법에 어떤 생각 ....

+0

'# selector' 구문이 잘못되었습니다. 귀하의 질문과 관련이 없지만'# selector '를 올바르게 사용하는 것이 좋습니다. – matt

+0

@matt 예, #selector (i3Vatrom.romBeskrivelse) 이것은 올바른 구문입니다. 하지만 어떻게 매개 변수를 전달할 지 알 수 없습니다. 어떤 생각? "태그"는 문자열 값을 가져 가지 않습니다. – ripa

+0

당신은 그 태그에 대해 옳습니다. 이것이 제가 좀 더 정교한 해결책을 제안한 이유입니다. – matt

답변

0

, 당신은 UITableView을 사용하지 않는 경우, UITableView 계층 구조를 사용 UITableView을 사용하고 버튼을 관리하기위한 sectionrow태그 속성을 사용해야합니다. didSelectRowAtIndexPath 버튼 클릭에 사용하는 기능.

0

액션 핸들러 함수에는 아무 것도 전달할 수 없습니다. 액션 핸들러 함수는 보낸 사람 (여기, 버튼)을 매개 변수로 자동 수신합니다. 따라서 트릭은 이 전달 된 정보이므로 버튼 객체 자체에 전달 된 정보에 대한 지식을 구축하는 것입니다. 귀하의 경우에는 정상 상태에 대한 버튼 title을 묻고 "1.1.1""Overflater"으로 구문 분석 할 수있는 것처럼 보입니다.

+0

거기에 거의 14 버튼이 있습니다. DB에 따라 버튼을 증가시킬 수 있습니다. 그래서 각 버튼에 대한 하위 클래스를 생성해야합니까? – ripa

+0

실제로 문제는 버튼을 클릭 할 때 sectionNumber에 "1.1.1"을 할당하는 방법을 알 수 없습니다. 그래서 이것을 함수에서 사용할 수 있습니다. – ripa

+0

예 - 확인. U 감사합니다. – ripa

0

많은 것을 시도하고 생각한 후에이 질문에 대한 쉬운 해결책을 발견했습니다.

코드 아래 버튼 대상을 추가 : -

ov_button.addTarget(self, action: #selector(i3Vatrom.romBeskrivelse), forControlEvents: UIControlEvents.TouchUpInside) 

나는 아래와 같은 기능을 사용했습니다 : - 내가 대답을 게시해야 생각 이유

func romBeskrivelse(sender:UIButton!) { 

    let title = sender.titleLabel!.text! 
    let titleArr = title.characters.split{$0 == " "}.map(String.init) 
    print(titleArr) // print ["1.2.1", "Overflater"] 

} 

. 다른 도움이 될 수 있습니다.

+0

좋았지 만 정확히 내가 말한 것이 아니겠습니까? 단추의 제목을 물어보고 구문을 분석하십시오. – matt

+0

사실 저는 이전에 당신의 대답을 이해하지 못했습니다. 지금 막 당신의 대답을 다시 읽고 깨달았습니다. 그래서 지금 당신의 대답에 감사드립니다. – ripa

+0

당신을 환영합니다! 귀하의 코드도 잘못되었습니다. 제목 레이블의 제목 텍스트를 요구하지 않아야합니다. 내 대답에서 말한 것처럼 _ 버튼의 제목 _을 요청하십시오. – matt

관련 문제