Създадох приложение за разкази. Всъщност имам проблем със segue. Имам един контролер за изглед "A" и се предполага, че трябва да натисна контролера за изглед "B". В "A" viewController очакваме малко потребителска информация и извършваме някои валидации за това и само въз основа на валидиране трябва да прокара нов viewController през segue. Проблемът ми е, че използвах задействана сегментация и тя винаги натиска контролера за изглед "B". Можете ли да ме информирате въз основа на валидации, как мога да деактивирам преминаването.
Проблем с продължаване на UIStroyboard
Отговори (1)
Свържете бутона от сцена A. Не от UI елемент на сцена A, а от основния изглед на сцена A.
Сега, в контролера за изглед на сцена А, ако имате бутон, който трябва да валидира, просто използвайте if
или каквото и да е. Ако цялата информация е добра, обадете се на segue, ако не е, не се обадете на segue.
Обадете се по следния начин:
[self performSegueWithIdentifier: @"MySegue" sender: self];
Където @"MySegue"
се заменя с името, което сте дали в разкадровката.
Например:
- (IBAction) myButtonPress:(id)sender {
//validate the info
if(valid) {
[self performSegueWithIdentifier: @"MySegue" sender: self];
} else {
//probably prompt the user that their info is invalid
//maybe clear textboxes, etc.
}
}
Ключът тук обаче е прикрепен към viewController
, а не от самия бутон. Също така трябва да сте сигурни, че сте нарекли своя продължение и се уверете, че името в сценария съвпада с името в кода. XCode няма да ви помогне да го допълните автоматично.
person
nhgrif
schedule
11.11.2013