Нажмите на новый контроллер представления, только если текстовые поля правильны - PullRequest
0 голосов
/ 02 апреля 2012

В настоящее время использую Xcode 4.2, и у меня есть два контроллера представления (1 и 2). У меня есть несколько текстовых полей в viewcontroller1, которые необходимо заполнить, прежде чем пользователь сможет нажать кнопку «Далее», которая затем перейдет к viewcontroller2. У меня есть всплывающее окно alerttdialogs, если пользователь не заполнил все текстовые поля.

Я использовал раскадровку, чтобы передать нажатие кнопки, которое работает нормально, за исключением того, что текстовые поля пусты, мой alerttdialog всплывает, но контроллер представления по-прежнему меняется на номер 2.

Как мне сделать так, чтобы только при выполнении моих операторов if / else кнопка next переходила к следующему контроллеру представления.

Я использую контроллер навигации для управления контроллерами вида.

Я попытался вставить следующий код в оператор if / else, но он не сработал:

UIViewController *secondViewController = [[SecondViewControllerClass alloc] initWithNibName:@"<name of xib>" bundle:nil];
[self presentModalViewController:secondViewController animated:YES];

Теперь было несколько вещей, в которых я не был уверен, пытаясь выяснить, как использовать этот метод. Нужно ли мне импортировать SecondViewController.m вверху firstviewcontroller.m?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Достаточно просто, так как вы уже настроили всплывающие окна предупреждений, если что-то не так с вводом текстового поля, убедитесь, что код показа / инициализации окна предупреждения находится перед кодом, который меняет представление, и сделайте следующее:*

if(//something is wrong with the textbox input)
{
    UIAlertView* alert = [[UIAlertView alloc] initWith...
    [alert show];

    //Add a return! If the method is not IBAction or void, just return nil
    return;
}

Вуаля!

0 голосов
/ 02 апреля 2012

NSString имеет полезное свойство под названием length, которое будет возвращать ноль, если текстовое поле не содержит текста.Если вам нужно проверить, позвоните:

if (!myTextField.text.length) { 
    //no text in the box
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...