2016-06-10 7 views
0

세그먼트 중 하나를 탭하면 멋지게 작동하는 분할 컨트롤이 있지만 아무 것도 누르지 않으면 첫 번째 세그먼트 인 자연 휴식 지점에 놓습니다.스위프트 분할 컨트롤 기본 상태

나는 다른 세그먼트를 눌러 앱을 계속하여이를 테스트하고 일했다, 그리고 난 또 다른 세그먼트를 눌러 다음 첫 번째 세그먼트로 다시 이동하여 테스트하고 그것을가 포장되어 있기 때문에 그것은 의미가

@IBAction func segmentedControl(sender: UISegmentedControl) { 

    switch segmenControl.selectedSegmentIndex { 

    case 0: 
     numberOfParticipants = "4" 
    case 1: 
     numberOfParticipants = "6" 
    case 2: 
     numberOfParticipants = "8" 
    case 3: 
     numberOfParticipants = "10" 
    case 4: 
     numberOfParticipants = "12" 
    case 5: 
     numberOfParticipants = "14" 
    case 6: 
     numberOfParticipants = "16" 
    default: 
     break 
    } 


} 

근무 IBAction에서는 아무 것도 누르지 않으므로 트리거되지 않습니다. 이 문제를 어떻게 해결합니까?

편집

으로 강조 세그먼트 4 말한다 사용자가 다음 변수가 "4"의 캐릭터로 업데이트 된 가져옵니다 계속 버튼 (다른 버튼)을 탭하면 내 말 작동하지 않고 firebase가 x = 4라고 말하기 위해 업데이트 됨

그래서 무슨 일이 벌어지는지는 기본적으로 페이지에 착륙했을 때 4 개의 세그먼트가 강조 표시되어 있고 4 개를 원하는 경우 혼자 남겨두고 계속 버튼을 누릅니다. ... 내 문제는 세그먼트 컨트롤과 상호 작용하지 않고 실제로 4를 탭하면 코드가 실행되지 않는다는 것입니다.하지만 6을 탭한 다음 다시 4로 설정하면 트리거됩니다.

+0

무슨 문제입니까? 사용자가 말했듯이 사용자가 아무것도 탭하지 않으면 아무 일도 일어나지 않습니다. 뭐가 문제 야? (나는 딱딱하지 않고, 나는 정말로 이해하지 못한다. "당신이 아무것도 두 드리지 않고 그것을 첫 번째 부분 인 자연스러운 휴식 장소에 앉히면, 그것은 나에게 아무것도 전달하지 않는다. "work"_mean_ here?) – matt

+0

기본적으로 내 질문을 업데이트했습니다 ... 기본적으로 어떤 세그먼트가 강조 표시되는지에 따라 계속 버튼 코드가 ​​firebase로 전송됩니다 ... 원하는 경우 세그먼트에 대한 상호 작용이 수행되지 않으므로 기본값은 4로 코드가 실행되지 않습니다 ... 나는 그것을 지우는 것이 바람직합니다 – RubberDucky4444

+1

필요가있는 것처럼 보입니다. 탭을 누르지 않았을 때 numberOfParticipants에 대한 기본값을 정의하는 것 같습니다. –

답변

2

귀하의 질문에 명확한 정의가 정확히 무엇인지 명확하게 정의되어 있지 않습니다. 탭하지 않으면 작동하지 않습니까? 일반적으로 UISegmentedControls 사용에는 2 단계가 있습니다. 1 단계에서 당신은 당신의 초기화에서 설정 - 즉, viewDidLoad에 -을 통해 : 물론

segmenControl.selectedSegmentIndex = your_initial_value 

제어는 6 개 값을 가지고 있기 때문에 초기 값이 numberOfParticipants 수 없습니다 ..

그런 다음 2 단계는 같은 당신의 괜찮아 보이는 IBAction. 물론 마법 숫자를 사용하는 것은 다소 문제가 있습니다.

+0

당신이 할 말은 무슨 뜻입니까? 마법의 숫자? 나는 내 질문을 업데이트했다 – RubberDucky4444

+0

예 - 나는 봤고 어리둥절했습니다.] 당신은 원래 질문에서 어떤 계속 단추, firebase 또는 어떤 것도 언급하지 않았습니다. 어떤 경우 든 세그먼트 화 된 컨트롤을 사용하여 사물을 초기화하는 것처럼 보입니다. 그러나 그것은 다른 방향 일 것입니다. 세그먼트 화 된 컨트롤을 초기화 할 기본값을 가져야하며 그 값은 현재 작동하지 않는 코드의 다른 부분을 관리해야합니다. BTW : 매직 번호는 코드에서 숫자를 직접 사용하는 것을 말합니다. – caxix

1

이것은 질문을 이해하는 방법입니다. "계속하기"버튼이 있으며, 그것을 치면 세분화 된 컨트롤의 상태를 반영하고 싶습니다. 옳은?

그런 경우 IBAction이 필요하지 않습니다. 계속 버튼의 IBAction에서 직접 segmentControl.selectedSegmentIndex을 읽으십시오.