Проблем с продължаване на UIStroyboard

Създадох приложение за разкази. Всъщност имам проблем със segue. Имам един контролер за изглед "A" и се предполага, че трябва да натисна контролера за изглед "B". В "A" viewController очакваме малко потребителска информация и извършваме някои валидации за това и само въз основа на валидиране трябва да прокара нов viewController през segue. Проблемът ми е, че използвах задействана сегментация и тя винаги натиска контролера за изглед "B". Можете ли да ме информирате въз основа на валидации, как мога да деактивирам преминаването.


person user917256    schedule 11.11.2013    source източник


Отговори (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