2013-10-01 2 views
0

Мне нужно настроить мой сегментированный элемент управления, чтобы повлиять на то, куда моя кнопка посылает пользователя. Да отправляет их на новый экран, а не отправляет их на следующий экран.Сегментированные элементы управления влияют на кнопку

первый сегмент:

UISegmentedControl *par; 

Да (0) посылает пользователей к UIViewController ParError по щелчку следующей кнопке. Нет (1 - По умолчанию) отправляет пользователей в UIViewController TermsUI, нажав на следующую кнопку.

второй сегмент:

UISegmentedControl *basicOp; 

Да (0) посылает пользователь к UIViewController НЕПОДДЕРЖИВАЕМОГО по щелчку следующей кнопки. Нет (1 - По умолчанию) отправляет пользователей в UIViewController TermsUI при нажатии следующей кнопки.

Я пробовал, если заявление, и оно усложнилось, и я все время получал ошибки, когда оба были выбраны. Кто-нибудь хочет работать? Я не могу понять это ни с одним из руководств разработчика. Помоги пожалуйста?

Я новичок в Xcode и Objective-C, поэтому, пожалуйста, объясните, как это делать.

ПРИМЕЧАНИЕ. Мне не нужно, чтобы это было как подпункты. То, что он делает, это толкать пользователя на другой экран, который дает новые инструкции о том, что делать, а затем выводит их на другой экран, отличный от оригинала.

+0

Что произойдет, если у вас есть 'par segment' на' Yes (0) 'и' basicOp segment' на 'Yes (0)' в то же время? – CoderPug

+0

Мне понадобится это, чтобы перейти на неподдерживаемый экран, так как даже если par нет, basicOp выводит вас на экран, говорящий, что это неподдерживается. –

ответ

0

Для получения текущего значения, выбранного из вашего SegmentControls, используйте свойство .selectedSegmentIndex. Это возвращает индекс выбранной опции в вашем segmentControl (More information about UISegmentedControl class reference),

Как я понял из вашего вопроса, par сегмент имеет только два элемента: YES, NO. На что конкретный порядок так,

if (par.selectedSegmentIndex == 0) { 
    // YES is selected, perform the action for going to ParError UIViewController 
} else { 
    // NO is selected, perform the action for going to TermsUI UIViewController 
} 

И в том случае, basicOp имеет также два варианта на том же порядке: YES, NO

if (basicOp.selectedSegmentIndex == 0) { 
    // YES is selected, perform the action for going to Unsupported UIViewController 
} else { 
    // NO is selected, perform the action for going to TermsUI UIViewController 
} 

Предполагая, что вы хотите добиться:

  • Если par находится на ДА (независимо от того, какое значение имеет basicOp), приложение отправляет пользователя в ParError UIViewController
  • Если par на NO и basicOp на YES, приложение отправляет пользователю Unsupported UIViewController
  • Если par на NO и basicOp включен, приложение отправляет пользователю TermsUI UIViewController

The условными вы должны иметь было бы:

if (par.selectedSegmentIndex == 0) { 
    // YES is selected, perform the action for going to ParError UIViewController 
} else if (basicOp.selectedSegmentIndex == 0) { 
    // YES is selected, perform the action for going to Unsupported UIViewController 
} else if (par.selectedSegmentIndex == 1 || basicOp.selectedSegmentIndex == 1) { 
    // NO is selected, perform the action for going to TermsUI UIViewController 
} 
+0

Я думаю, что я понимаю, где я ошибся с утверждением if/else самостоятельно, но какое действие я бы вызвал, чтобы пользователь перешел на другой экран нажатием кнопки? –

+0

Используете ли вы NavigationViewControlller? Затем: '[self.navigationController pushViewController: yourViewController animated: YES];' – CoderPug

+0

. Что делает приложение, задает пользователю два вопроса, если пользователь говорит «да» первому вопросу (пар), он переносит их на один экран, когда Нажмите "Далее. Если они скажут «да» второму (basicOp), то он переводит их на второй экран. Второй должен переопределить первый, поскольку второй переносит их на неподдерживаемый экран. –

Смежные вопросы